java子类重写父类中的方法,在测试类中如何输出?

package exercise;

class Figure{
    double dim1;
    double dim2;
    Figure(double d1, double d2){
        this.dim1=d1;
        this.dim2=d2;
    }
    public double area() {
        System.out.println("父类中的方法,没有实际意义,需要在子类中重写。");
        return 0;
    }
}
class Rectangle extends Figure{
    Rectangle(double d1, double d2) {
        super(d1, d2);
        }
    public double area() {
        System.out.println("长方形的面积="+dim1*dim2);
        super.area();
        return 0;
    }
}
class Triangle extends Figure{
    Triangle(double d1, double d2) {
        super(d1, d2);
        }
    public double area() {
        System.out.println("三角形的面积="+dim1*dim2/2);
        super.area();
        return 0;
    }
}
public class zuoye510 {
    public static void main(String[] args) {
        Figure f=new Figure(4,5);
        f=new Rectangle(0,0);
        f.area();
        f=new Triangle(0,0);
        f.area();
    }
}

题目意思大概是这样的:

Figure F;

 Rectangle R=new Rectangle(4,5);

F = R;
        F.area();
        Triangle T=new Triangle(4,5);

F = T;
        F.area();

 

你这样写有什么问题吗?

 

f=new Rectangle(0,0);
        f.area();
        f=new Triangle(0,0);
        f.area();

你这样当然输出是0了,你传入的都是0啊

你后面都重新new对象了,和Figure f=new Figure(4,5);就没有一毛钱关系了啊

你 f=new Rectangle(4,5)试试

你要的是调用父类的成员属性,还是说,调用父类方法的时候,打印一句话表面调用了父类方法

Figuer figure=null;
figuer =new Figuere(4,5);
figuer.area();
figuer =new Rectangle(4,5);
figuer.area();
figuer =new Triangle(4,5);
figuer.area();