Day10 多态 接口 内部类

Day10

接口 多态 内部类

接口类型的引用

  • 接口类型的引用都是指向接口类型的子类对象

多态的基本形式

  • 父类或者接口的引用指向其子类对象
  • 提高了代码的扩展性,前期定义的代码,可以使用后期编写的代码
  • 局限性:前期定义的内容,不能使用后期特有内容。
  • 前提:要有覆盖、要有继承
  • 多态的本质是向上转型。想继续访问特有功能可以向下转型。
  • 对于转型,自始至终都是子类对象在进行类型变化

多态时的一些特点

  • 成员变量:沿用父类的成员变量。如果父类中有该成员变量,编译通过,否则编译失败。
  • 成员函数:编译时看左边引用有没有相应方法,运行时按照右边对象的方法来运行,若右边找不到再找super中的相应方法。子类的特有方法被隐藏。因为成员动态函数是被绑定到对象上的。简单地说,就看左边。
  • 静态函数:将调用左边的类静态函数,因为静态函数是与类绑定的,而此时的类应为父类。其实静态函数不涉及多态,直接用类名调用即可。简单地说,就看左边。

instanceof关键词

用于判断对象的具体类型。

内部类

又称为嵌套类、内置类,是存在于类中的类。

  • 内部类可以直接访问内部类的成员
  • 外部类要访问内部类必须建立内部类的成员
  • 如果内部类是静态的,相当于一个内部类
  • 可以用outter.this inner.this来访问内外部的变量
  • 内部类在局部位置上只能访问被final修饰的局部变量

匿名内部类

就是内部类的简写格式。

  • 前提:内部类必须继承或实现一个外部类或接口。
  • 匿名内部类就是一个匿名子类对象。
  • 通常使用场景之一:当函数参数是接口类型,且接口中的方法不超过3个,可以用匿名内部类当做实际参数进行传递。

==内部类听得云里雾里 昏昏欲睡 ==

posted on 2017-03-20 13:39  hazelnut  阅读(72)  评论(0)    收藏  举报

导航