定义一个抽象类Shape,该类中包含两个成员变量x,y,用来记录图形的中心位置,同时在该类中还包含一个非抽象方法void ShowCenter()和一个抽象方法double Area(),分别用来显示图形的中心位置和求图形的面积,从该抽象类扩展矩形类Rectangle类、圆类Circle和正方形类Square。
在main方法中用抽象类的引用调用相关方法来输出相应图形的面积及其显示图形的中心置。
abstract class Shape{
//声明一个返回float类型的抽象方法area()
public abstract float area();
//声明一个没有返回值的抽象方法printArea()
public abstract void printArea();
}
class Rectangle extends Shape{
int width;
int length;
public Rectangle(int newWidth,int newLength){
width=newWidth;
length=newLength;
}
//实现父类的抽象方法area(),返回widthlength的值
public float area(){
return width*length;
}
//实现父类的抽象方法printArea(),在屏幕上显示矩形的面积
public void printArea(){
System.out.println("矩形的面积是:"+area());
}
}
class Circle extends Shape{
final float pi=3.14F;
int radius;
public Circle(int newRadius){
radius=newRadius;
}
//实现父类的抽象方法area(),返回piradius*radius的值
public float area(){
return pi*radius*radius;
}
//实现父类的抽象方法printArea(),在屏幕上显示圆的面积
public void printArea(){
System.out.println("圆形的面积是:"+area());
}
}
class ChouXiang{
public static void main(String[] args){
Rectangle s1= new Rectangle(3,4);
Circle s2=new Circle(2);
s1.printArea();
s2.printArea();
}
}