java内部类回顾之一般内部类实现多继承和封装性

来源:互联网 发布:淘宝客现状 编辑:程序博客网 时间:2024/05/17 09:27

本文的标题可能有一定的误导性,并不是说一般内部类就能实现多继承,显然这是不可能的。真正的意思是通过多继承来实现我们期望中的多继承的功能。

这里就拿人类来举例吧,人(Person)是一种生物(biology),而且是可移动(Moveable)的生物。我们可以定义如下两个类:

public class Biology {public void die(){System.out.println("生命是有限的,都有死亡的一天");}}


package com.pht.inner;public class Moveable {public void move(){System.out.println("运动是永恒的,静止是想对的");}}


人要同时具有以上的两种特性,那么就需要定义一个人(Human)如下:

package com.pht.inner;import com.pht.inner.Outer.Inner;public class Human {public void MoveableBiology(){InnerHuman1 innerHuman1=new InnerHuman1();InnerHuman2 innerHuman2=new InnerHuman2();innerHuman2.move();innerHuman1.die();}class InnerHuman1 extends Biology{}class InnerHuman2 extends Moveable{}}

测试类main如下

package com.pht.inner;public class Humantest {public static void main(String[] args) {// TODO Auto-generated method stubHuman human=new  Human();human.MoveableBiology();}}
可以看出,我们是通过内部类分别继承来实现多继承的功能,这对于在一些情况下提高代码的灵活性和复用是很有帮助的。当然,我们也可以外部类继承一个模块,剩下的由内部类来继承来实现。在此不需要赘述。

内部类的封装性:

加入我们把内部类定义为private的,那么就只有包含此内部类的外部类能够访问他。这样在我们希望只给某一个类提供服务,拒绝其它不相干的的类的访问的时候,我们可以通过内部类来达到目的。



0 0
原创粉丝点击