1,覆盖方法是实例方法,并且不能降低访问权限。(子类从父类继承的)
2,子类中也可以改写夫类中的数据成员和静态方法,这个叫成员隐藏。
3,实例方法中可以用super访问父类中的方法super.fun();
4,方法覆盖是为多态服务的
5,希望父类中的方法不被子类中写的覆盖(方法,类(不让它派生子类),成员),那怎么弄呢! final关键字!
但是final修饰的方法在子类中是可以重载的。
6,用final修饰数据成员的话,系统不会为它提供默认值。
7,final修饰形参的话。。能访问不能改变??
8,final修饰静态变量,要么定义的同时复制,要么在静态初始化块中
9,final修饰实例变量,后面一样,特殊在于可以在构造方法中初始化。
但是少用,因为实例变量本来就是对象的一个属性,如果全不变的话,还不如整个公用的工具。
10,构造方法不可以被final修饰。
同时私有方法不能被覆盖。
11,final修饰类中的方法是final的(可以不写final),但是类里面的成员不一定是final
12,对象类型可以进行转换,但是得在继承链中。有自动转换(子类转父类)和强制转换(特殊情况。。比如你明确知道它是圆形,也就是你明确知道一个父类对象就是一个子类对象时)
13,类型检验运算符,instanceof,运算结果是布尔型,为了父类子类类型转换不出错。
14,多态指的是程序在运行时判断执行那个代码块的能力。
前提是由继承,父类和子类中要有方法覆盖。测试类中方法参数类型要是父类的。
多态由动态绑定实现的,动态绑定指程序在运行时根据对象的实际类型来调用方法。
而静态绑定是你程序的方法在编译时候确定的
15,抽象方法和抽象类。
抽象方法只有方法头,没有方法体。
而含有抽象方法的类是抽象类。
同时一定要加 abstract