android Override a function in subclass

M.M

I make a class Figure then two subclasses from it. Figure super class have a method named are(). this is the all class.

public class Figure
{
  public double a, b;
  public Figure(double a,double b) {
    this.a = a; 
    this.b = b;
  }

  public double are() {
    return 0;
  }
}

public class Rectangle extends Figure
{
  Rectangle(double a, double b) {
    super(a,b);
  }

  double area (){
    return this.a*this.b;
  }
}

class Triangle extends Figure
{
  Triangle(double a, double b) {
    super(a,b);
  }
  // override area for right triangle
  double area () {
    return a * b / 2;
  }
}

to easy print outpute I make

public  void toastM(String str) { 
  Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();
}

now I use this code

 Figure f = new Figure(10, 10);
 Rectangle r = new Rectangle(9, 5);
 Triangle t = new Triangle(10, 8);

 Figure figref;
 figref = r;
 toastM("are.....   " + figref.are());
 figref = t;
 toastM("are.....   " + figref.are());
 figref = f;
 toastM("are.....   " + figref.are());

expected values are 45 40 0 but it come 0 0 0

Fabio

The parent class has a method called

double are()

the child classes

double area()

so it's not overridden

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related