package day;
public class t{
public static void main(String[] args) {
//向上造型
Shape s1=new Square(2) ;
System.out.println(s1.getArea());
}}
//代表图形类
class Shape{
//私有化属性
private double x;//代表宽
private double y;//代表长
//用过构造方法进行属性初始化(间接给私有属性赋值)
public Shape(double x,double y){
this.x=x;
this.y=y;
}
//提供getter and setter 方法
public double getX() {
return x;
}
public double getY() {
return y;
}
//求周长和面积的方法
public double getGirth(){//求周长
return 0.0;//图形类代表的是任意的图形不能用具体的计算公式来计算
}
public double getArea(){
return 0.0;//求面积
}}
//代表矩形类
class Rectangle extends Shape{
//子类有参构造 调用父类有参构造给父类的私有化属性进行赋值
public Rectangle(double x, double y) {
super(x, y);//调用父类的有参构造
}
//重写求周长和面积的方法
public double getGirth(){
return 2*(getX()+getY());
}
public double getArea(){
return (getX()*getY());
}
}
//代表正方形类
class Square extends Shape{
public Square(double x) {
super(x, x);
}
}
//代表圆形类、
class Circle extends Shape{
public Circle(double r) {
super(r, r);//长和宽都是半径的值
}
public double getGirth(){
return 2*3.14*getY();
}
public double getArea(){
return (3.14*getX()*getY());
}
}
代表图形的类(长、宽,求周长和面积的方法,由构造方法来进行属性初始化,属性私有化)、矩形类、正方形类、圆类(构造方法赋值、求周长和面积的方法)
最新推荐文章于 2021-12-22 21:26:52 发布