黑马程序员_多态总结

来源:互联网 发布:淘宝仿大牌的做得好的 编辑:程序博客网 时间:2024/05/18 19:38

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------

多态:
1.多态的体现;
    父类的引用指向子类的对象,
    父类的引用也可以接受自己子类的对象。
2.多态的前提;
    必须是类与类之间存在继承或实现的关系。
    存在覆盖。
3.多态的优点:
    提高了代码的扩展性
4.多态的缺点:
    只能使用父类的引用访问父类中的成员。
如果父类引用想要访问子类的方法,必须将父类引用强制转换成子类类型。
fu b = new zi();
zi a = (zi)b;
不可将父类的对象转换成子类。
因此多态自始自终都是子类对象在发生着变化。

在编译期间,参阅引用型变量所属的类是否有相应的方法。有的话,编译通过,否则,编译失败。
在运行期间,参阅参阅对象所属的类是否有相应的方法。
简单的来说,就是成员函数在多态调用时,编译看左边,运行看右边。

在多态中成员变量的特点;无论编译还是运行,都参考引用型变量所属的类(看左边)。

内部类可以直接访问外部类中的成员,包括私有。
之所以可以直接访问外部类中的成员,是因为内部类中持有一个外部类的引用,格式 外部类名.this.

访问格式:
 当内部类定义在外部类的成员位置上,而且非私有,可以在外部其它类中
 直接建立内部类对象。
 格式 外部类名.内部类名 变量名 = 外部对象.内部对象;

 当内部类在成员位置上,就可以被成员修饰符所修饰。
 如,private:内部类在外部类中封装。
   static:内部类就具备static的特性。
   只能直接访问外部类中的静态成员。出现了访问局限。

   在外部其他类中,如何访问static内部类的非静态成呢?
   new Outer.Inner().function();
   当内部类中定义了静态成员,内部类必须是静态的。
   当外部类中的静态方法访问内部类时,内部类也必须是静态的。

局部类的特点。
不可以被成员修饰符修饰。
可直接访问外部类中的成员,因为还持有外部类的引用。
但是不可以访问它所在的局部的变量,只能访问被final修饰的局部变量。

匿名内部类:
1.匿名内部类其实就是内部类的简写格式。
2.定义匿名内部类的前提:
  内部类必须是继承一个类或者实现接口。
3.匿名内部类的格式:  new 父类或者接口(){定义子类内容}。
4.其实匿名内部类其实就是一个匿名子类对象。

 ----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------

原创粉丝点击