soap386
2021-05-14 14:20
采纳率: 66.7%
浏览 67
已采纳

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • 快乐鹦鹉 2021-05-14 14:46
    已采纳

    题目意思大概是这样的:

    Figure F;

     Rectangle R=new Rectangle(4,5);

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

    F = T;
            F.area();

     

    已采纳该答案
    打赏 评论
  • 快乐鹦鹉 2021-05-14 14:34

    你这样写有什么问题吗?

    打赏 评论
  • soap386 2021-05-14 14:37

     

    打赏 评论
  • 快乐鹦鹉 2021-05-14 14:39

    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)试试

    打赏 评论
  • qq_1113502097 2021-05-14 14:51

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

    打赏 评论
  • 忆梦九洲 2021-05-14 14:54
    Figuer figure=null;
    figuer =new Figuere(4,5);
    figuer.area();
    figuer =new Rectangle(4,5);
    figuer.area();
    figuer =new Triangle(4,5);
    figuer.area();
    打赏 评论

相关推荐 更多相似问题