多态

成员的特点:

1.成员变量

编译时:参考引用型变量所属的类中是否有调用的成员变量,有,则编译通过。

运行时:参考引用型变量所属的类中是否有改成员变量。并运行该成员变量。

简单书说:编译和运行都参考左边。

2.成员函数

编译时:参考引用型变量所属的类中是否有调用的函数,有则编译通过。相当于向上转型时无法使用子类中特有的方法。

运行时:优先子类,子类没有找父类

简单说:编译看左边,运行看右边

3.静态方法

因为静态的不涉及对象,所有静态的没有多态性。

简单说:编译和运行看左边

内部类

定义在类中的类,也叫嵌套类。

1.内部类可以直接访问外部类的成员

2.外部类要访问内部类,必须要建立内部类的对象。outer.inner in =new outer().new  inner();

一般用于类的设计。

3.如果内部类是静态的,则相当于外部类。outer.inner in = new outer.inner();

4.如果内部类是静态的,成员是静态的。直接---->>>outer.inner.function();

如果成员是静态的,则内部类必须是静态的

5.num-------this.num-------outer.this.num

6.内部类可以存放在局部位置上,即可以在方法中定义类,即局部位置类

匿名内部类

匿名内部类就是内部类的简写格式

      必须有前提:内部类必须继承或实现一个外部类或者接口

其实就是一个匿名子类对象

格式 new  父类(){子类内容}

 

你可能感兴趣的:(多态)