装饰与继承的区别:装饰:基于已有的功能,并提供加强功能,装饰类通常会通过构造方法接收被装饰的对象。并基于被装饰的对象的功能,提供更强的功能。相对于继承来说装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。英文叫:Decorator 继承:因为要扩展某个功能,就得 ...
装饰与继承的区别:
装饰:基于已有的功能,并提供加强功能,装饰类通常会通过构造方法接收被装饰的对象。并基于被装饰的对象的功能,提供更强的功能。相对于继承来说装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。英文叫:Decorator
继承:因为要扩展某个功能,就得继承父类,然后覆盖重写,导致这个体系更加臃肿,并且内存占用高。
一般情况下,其实接口也可以当做一种抽象类来看待,也就是说父类对象也可以是接口,如果一个类A实现了一个接口T,当我们在声明实例:T t =new A();时,t看起来是一个T,本质上是一个A,这也是多态的一种!
验证一下,首先先创建一个接口a:
1 public class test { 2 interface a{ 3 void fun(); 4 } 5 class b implements a{ 6 7 public void fun() { 8 System.out.println("这个实现接口类!"); 9 }10 11 }12 class c extends b{13 public void fun(){14 System.out.println("这是实现接口类的子类!!");15 }16 }17 public static void main(String[] args) {18 a dd = new test().new c();19 dd.fun();20 }21 }
原标题:浅谈装饰模式
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。