用JAVA实现一个类层次:Shape、Rectangle、Triangle,其中:Shape类中定义了一个抽象方法area().

如题所述

abstract class Shape //定义抽象类Shape
{
public Shape() //无参构造函数
{
}

public abstract double area(); //抽象方法求面积
}

class Rectangle extends Shape //定义矩形类,继承自Shape
{
private double width; //定义私有成员变量:长
private double height; //定义私有成员变量:高

public Rectangle() //无参构造函数
{
}
public double area() //实现求面积的抽象方法
{
return width*height;
}
}

class Triangle extends Shape //定义三角形类,继承自Shape
{
private double bottomside; //定义私有成员变量:底边
private double height; //定义私有成员变量:高

public Triangle() //无参构造函数
{
}

public double area() //实现求面积的抽象方法
{
return bottomside*height/2;
}
}

____________________________________________
area()方法不小心漏写了抽象修饰符,这个是我的疏忽

至于成员变量初始化赋值么,不是我漏写的,是赋值方法很多,而且对于这个问题来说,不是重点,所以没写。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-12
一楼有误,抽象父类Shape中的方法area()应为抽象的,改为:
public abstract double area(); //抽象方法求面积
还有,变量使用前要先赋值,可在构造器中,如类Rectangle :
public Rectangle(double width,double height){
this.width = width;
this.height = height;
}
当然,也可以在其它地方赋值,如:setter()方法,本回答被提问者和网友采纳
相似回答