实验三—Shape类 (函数)

题目既详细又简单,按照要求写就行。因为是函数题,我们主函数都不需要写只需要把类方法写好就行

首先是定义shape类作为父类并且提供计算周长和面积的函数

这里因为没有具体图形我们只需要定义方法就可以,后续子类调用面积和周长方法在子类重写就行,符合抽象类的定义(具体方法不用书写,直接在子类重写)

abstract class Shape {
abstract double getPerimeter();

abstract double getArea();

}

然后就是子类的继承

class Square extends Shape {

double len;

public Square(double len) {

this.len = len;

}

public double getPerimeter() {

return 4 * this.len;

}

public double getArea() {

return this.len * this.len;

}

}

定义正方形square类继承shape类,正方形有新的属性length(类型为double),构造方法传参,然后就是子类重写父类的getPerimeter和getArea方法

同样的方式我们写长方形子类继承正方形,继承了正方形的属性引用的话需要用super()

class Rectangle extends Square {
double broad;

public Rectangle(double len, double broad) {

super(len);

this.broad = broad;

}

public double getPerimeter() {

return 2 * this.len + 2 * this.broad;

}

public double getArea() {

return this.len * this.broad; }

}

首先就是继承然后增加一个属性,有参构造把全部变量放进去调用,继承自父类的变量就用super调用,然后子类重写方法

圆类也一样,而且更简单

class Circle extends Shape {
double r;

public Circle(double r) {

this.r = r;

}

public double getPerimeter() {

return 2 * Math.PI * r;

}

public double getArea() {

return Math.PI * this.r * this.r;

}

}

发表评论

蜀ICP备2022010829号