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();