package abstract0;
//图形类
public abstract class Sharp {
//图形的一般属性
private int lenght;
private int width;
private int borderLenght;
//get/set方法
public int getLenght() {
return lenght;
}
public int getWidth() {
return width;
}
public int getBorderLenght() {
return borderLenght;
}
//构造函数
Sharp(){}
Sharp(int lenght,int width)
{
this.lenght=lenght;
this.width=width;
}
Sharp(int borderLenght)
{
this.borderLenght=borderLenght;
}
//抽象函数
public abstract void print();
public abstract Sharp returned();
}
package abstract0;
//圆类
public class Circular extends Sharp{
private int radius;
Circular(int radius)//构造函数
{
this.radius=radius;
}
@Override
//重写print方法
public void print() {
System.out.println("我是圆形,半径为"+radius);
}
public Sharp returned()
{
return this;
}
}
package abstract0;
public class Rectangle extends Sharp {
Rectangle(int lenght,int width)//构造函数
{
super(lenght,width);
}
@Override
//重写print方法
public void print() {
System.out.println("我是矩形,长为"+super.getLenght()+",宽为"+super.getWidth());
}
public Sharp returned()
{
return this;
}
}
package abstract0;
//正方形类
public class Square extends Sharp {
Square(int borderLenght)//构造函数
{
super(borderLenght);
}
@Override
//重写print方法
public void print() {
System.out.println("我是正方形,边长为"+super.getBorderLenght());
}
public Sharp returned()
{
return this;
}
}
package abstract0;
//测试类
public class Text {
public static Sharp getSharp(int i)//声明getSharp方法
{
Sharp s1=new Circular(1);
Sharp s2=new Rectangle(3,2);
Sharp s3=new Square(2);
if(i==0)return s1.returned();//判断
else if(i==1)return s2.returned();
else if(i==2)return s3.returned();
else return null;
}
public static void main(String[] args) {
getSharp(0).print();
getSharp(1).print();
getSharp(2).print();
}
}