从功能上来讲,抽象类定义了一个接口,即方法调用规约,派生类实现具体的规约。这实际上可以将具体的实现和接口分离开来,从而达到底层细节变化而高层框架不变的需求
下面我拿接口做个例,它是一种特殊抽象类,非常常见。
/////////////////底层代码///////
class A() implements I{
public void MeA(){
System.out.println("");
}
public void MeB(){
}
}
class B() implements I{
public void MeA(){
}
public void MeB(){
System.out.println("");
}
}
interface I(){
public A MeA();
public B MeB();
}
}
/////////////////上层代码/////////////////
class CallAB(){
I a = new A();//接口类型产生两个不同的对象
I b = new B(); //接口类型产生两个不同的对象
当业务发生变化时,只要改底层的A、B类成员方法变量就行
//A 、B类还可以实现两个或两个以上接口,不同的接口可以由同一个类实现。
a.MeA;
b.MeB;
}
抽象