------- android培训、java培训、期待与您交流! ----------
1 多态
体现:父类引用指向子类的对象,父类引用可以接受子类对象。
好处:可以提高程序的扩展性。
前提:类与类之间必须有联系,可以继承,也可以实现。通常还有一个前提:存在覆盖。
弊端:扩展有局限,只能使用父类的引用访问父类的成员。
Animal A = new Cat().//类型提升,向上转型
Cat C = (Cat ) A. // 强制将父类引用指向子类对象。
父类引用指向子类对象时,该引用可以被提升,也可以被强制转换,这个过程自始至终都是子类对象在做变化。
多态中非静态成员函数特点:
(1) 编译时期,参阅引用型变量所属类中是否有调用的方法,有则编译通过,否则失败。
(2)运行时期 ,参阅对象所属的类中是否有调用的方法。
总结:成员函数在多态调用时,编译看左边,运行看右边。
多态中成员变量(静态成员函数)的特点,无论编译还是运行都参考左边(引用型变量所属的类)。
2 内部类
内部类中持有一个外部类的引用,格式:Outer.this
访问规则:内部类可以直接访问外部类中的成员,包括私有的。而外部类要访问内部类,必须建立内部类对象。
(1)当内部类定义在外部类的成员位置上,并且非私有,可以在外部其他类中直接建立的内部类对象。
Outer.Inner in = new Outer().new Inner();