成员的特点:
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 父类(){子类内容}