题目:
图形类(两个私有化属性(长和宽),通过有参构造赋值,提供求周长和面积的方法)、矩形类(通过有参构造赋值,提供求周长和面积的方法)、正方形类(通过有参构造赋值,提供求周长和面积的方法)、圆形类(通过有参构造赋值,提供求周长和面积的方法)
Java代码:
package cn.tedu.Extends;
public class ZCDemo {
public static void main(String[] args) {
//向上造型
Shape s1=new Rectangle(2,3);
System.out.println(s1.getArea());
System.out.println(s1.getgirth());
}
}
//代表图形的类
class Shape{
//私有化属性---长和宽
private double a;
private double b;//b代表宽
//通过有参构造给私有化属性进行赋值
public Shape(double a,double b){
this.a=a;
this.b=b;
}
//提供get方法,间接获取私有化属性值 //快捷键Alt+Insert
public double getA() {
return a;
}
public double getB() {
return b;
}
//提供求周长和面积的方法
public double getgirth(){//求周长
return 0.0;//因为没有确切图形,所以不能使用具体的计算公式(随便一个double接收的值都可以)
}
public double getArea(){//求面积
return 0.0;//因为没有确切图形,所以不能使用具体的计算公式
}
}
//定义代表矩形的类
class Rectangle extends Shape{
//调用父类有参构造给父类私有化属性间接赋值
public Rectangle(double a, double b) {
super(a, b);
}
//重写求周长和面积的方法
public double getgirth(){//求矩形周长
return 2*(getA()+getB());
}
public double getArea(){//求矩形面积
return getA()*getB();
}
}
//定义代表正方形的类
class Square extends Rectangle{
//调用父类有参构造给父类私有化属性间接赋值
public Square(double a) {
super(a, a);
}
}
//定义代表圆形的类
class Circle extends Shape{
//调用父类有参构造给父类私有化属性间接赋值
public Circle(double r) {
super(r,r);
}
//重写求圆形周长和面积的方法
public double getgirth(){//求圆的周长
return 2*3.14*getA();
}
public double getArea(){//求圆的面积
return 3.14*getA()*getA();
}
}
执行结果:

266

被折叠的 条评论
为什么被折叠?



