1、使用final修饰的引用类型变量不能被重新赋值,但可以改变引用类型变量所引用对象的内容。
2、final变量可执行“宏替换”;因为在编译时就可以确定其值。
3、对于一个private方法只在当前类显示,子类无法访问,若在子类中定义一个一样的方法,这不是重写,相当于定义一个新的方法。所以使用final修饰一个private方法,任然可以在子类中定义与该方法一样的方法。
4、final修饰的方法仅仅是不能被重写,任然可以被重载。
5、final类:不可以有子类。
6、不可变类:创建该类的实例后,该实例的实例变量是不可改变的。
创建不可变类规则:
①使用private和final修饰该类的成员变量
②提供带参数的构造器,用于初始化。
③仅提供getter方法,不提供setter方法
有必要的话重写hashCode()和equals()方法。
7、如果要设计一个不可变类,尤其要注意其引用类型的成员变量,因为引用类型的成员变量其引用的值是可以改变的,即使用final修饰也是可以改变的。/*解决方法没看懂*/
8、abstract抽象方法:只有方法签名,没有方法实现。有抽象方法的类只能定义为抽象类,抽象类不一定有抽象方法;抽象类不能创建实例,只能当作父类被继承。
9、final和abstract永远不能同时使用;abstract方法不能被定义为private的,因为要重写。
10、接口:接口里不包含普通方法,所有方法都是抽象方法。