Day10 多态 接口 内部类
Day10
接口 多态 内部类
接口类型的引用
- 接口类型的引用都是指向接口类型的子类对象
多态的基本形式
- 父类或者接口的引用指向其子类对象
- 提高了代码的扩展性,前期定义的代码,可以使用后期编写的代码
- 局限性:前期定义的内容,不能使用后期特有内容。
- 前提:要有覆盖、要有继承
- 多态的本质是向上转型。想继续访问特有功能可以向下转型。
- 对于转型,自始至终都是子类对象在进行类型变化
多态时的一些特点
- 成员变量:沿用父类的成员变量。如果父类中有该成员变量,编译通过,否则编译失败。
- 成员函数:编译时看左边引用有没有相应方法,运行时按照右边对象的方法来运行,若右边找不到再找super中的相应方法。子类的特有方法被隐藏。因为成员动态函数是被绑定到对象上的。简单地说,就看左边。
- 静态函数:将调用左边的类静态函数,因为静态函数是与类绑定的,而此时的类应为父类。其实静态函数不涉及多态,直接用类名调用即可。简单地说,就看左边。
instanceof关键词
用于判断对象的具体类型。
内部类
又称为嵌套类、内置类,是存在于类中的类。
- 内部类可以直接访问内部类的成员
- 外部类要访问内部类必须建立内部类的成员
- 如果内部类是静态的,相当于一个内部类
- 可以用outter.this inner.this来访问内外部的变量
- 内部类在局部位置上只能访问被final修饰的局部变量
匿名内部类
就是内部类的简写格式。
- 前提:内部类必须继承或实现一个外部类或接口。
- 匿名内部类就是一个匿名子类对象。
- 通常使用场景之一:当函数参数是接口类型,且接口中的方法不超过3个,可以用匿名内部类当做实际参数进行传递。
==内部类听得云里雾里 昏昏欲睡 ==
浙公网安备 33010602011771号