内部类实现多重继承
2014-08-22 16:23
197 查看
感谢‘chenssy’提供生动的例子,自己受益匪浅
多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而我们知道Java为了保证数据安全,它只允许单继承。有些时候我们会认为如果系统中需要使用多重继承往往都是糟糕的设计,这个时候我们往往需要思考的不是怎么使用多重继承,而是您的设计是否存在问题.但有时候我们确实是需要实现多重继承,而且现实生活中也真正地存在这样的情况,比如遗传:我们即继承了父亲的行为和特征也继承了母亲的行为和特征。可幸的是Java是非常和善和理解我们的,它提供了两种方式让我们曲折来实现多重继承:接口和内部类。
如何利用内部类实现多重继承,请看下面实例:儿子是如何利用多重继承来继承父亲和母亲的优良基因。
首先是父亲Father和母亲Mother:
重头戏在这里,儿子类Son:
多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而我们知道Java为了保证数据安全,它只允许单继承。有些时候我们会认为如果系统中需要使用多重继承往往都是糟糕的设计,这个时候我们往往需要思考的不是怎么使用多重继承,而是您的设计是否存在问题.但有时候我们确实是需要实现多重继承,而且现实生活中也真正地存在这样的情况,比如遗传:我们即继承了父亲的行为和特征也继承了母亲的行为和特征。可幸的是Java是非常和善和理解我们的,它提供了两种方式让我们曲折来实现多重继承:接口和内部类。
如何利用内部类实现多重继承,请看下面实例:儿子是如何利用多重继承来继承父亲和母亲的优良基因。
首先是父亲Father和母亲Mother:
public class Father { public int strong(){ return 9; } } public class Mother { public int kind(){ return 8; } }
重头戏在这里,儿子类Son:
public class Son { /** * 内部类继承Father类 */ class Father_1 extends Father{ public int strong(){ return super.strong() + 1; } } class Mother_1 extends Mother{ public int kind(){ return super.kind() - 2; } } public int getStrong(){ return new Father_1().strong(); } public int getKind(){ return new Mother_1().kind(); } }测试程序:
public class Test1 { public static void main(String[] args) { Son son = new Son(); System.out.println("Son 的Strong:" + son.getStrong()); System.out.println("Son 的kind:" + son.getKind()); } } ---------------------------------------- Output: Son 的Strong:10 Son 的kind:6儿子继承了父亲,变得比父亲更加强壮,同时也继承了母亲,只不过温柔指数下降了。这里定义了两个内部类,他们分别继承父亲Father类、母亲类Mother类,且都可以非常自然地获取各自父类的行为,这是内部类一个重要的特性:内部类可以继承一个与外部类无关的类,保证了内部类的独立性,正是基于这一点,多重继承才会成为可能。
相关文章推荐
- 内部类实现多重继承
- 利用 java 内部类实现多重继承
- java 内部类实现多重继承
- Java 内部类最重要的作用-实现多重继承
- 使用内部类让Java实现“多继承”
- 《Java编程思想》之接口(Java中实现多重继承?!)
- Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
- 用java内部类实现多重继承
- Anonymous Inner Class (匿名内部类)是否可以继承其他类,是否可以实现接口?
- 匿名内部类 是否可以继承其它类,是否可以实现接口
- java利用内部类实现多重继承
- 多重继承多态的实现
- Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
- 用内部类实现java多重实现中的方法同名问题
- [iOS]使用NSProxy实现消息转发机制,模拟多重继承
- 《Java编程思想》之接口(Java中实现多重继承?!)
- c#多重继承的实现--接口
- Java:使用内部类实现类的多重继承
- 实现类和继承、多重继承和多态
- Java:使用内部类实现类的多重继承