抽象类是多个具体子类抽象出来的父类,具有高层次的抽象性;以该抽象类作为子类的模板可以避免子类设计的随意性;
抽象类的体现主要就是模板模式设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行拓展,但是子类在总体上大致保留抽象类的行为方式;思路:
编写一个抽象父类,该父类提供了多个子类的通用方法,并把一个或多个抽象方法留给子类去实现,这就是模板设计模式;
//创建一个图形类
abstract class Tuxing
{
abstract double getZC();
abstract double getMian();
public void p()
{
System.out.println("周长"+getZC());
System.out.println("面积"+getMian());
}
}
class Juxing extends Tuxing
{
private int a;
private int b;
public Juxing(int a,int b)
{
this.a=a;
this.b=b;
}
double getZC(){
return (a+b)*2;
}
double getMian()
{
return a*b;
}
}
class Circle extends Tuxing
{
private int r;
public Circle(int r)
{
this.r=r;
}
double getZC(){
return (r+3.14)*2;
}
double getMian()
{
return 3.14*r*r;
}
}
class TemplateDemo
{
public static void main(String[] args)
{
Tuxing t=new Juxing(3,4);
t.p();
t=new Circle(3);
t.p();
}
}
输出结果:
---------- 运行java ----------
周长14.0
面积12.0
周长12.280000000000001
面积28.259999999999998
输出完成 (耗时: 0 秒) - 正常终止