【学习笔记】JAva编程思想之多态
1、如果java的基类拥有某个已被多次重载的方法名称,那么在导出类中重新定义该方法名称并不会屏蔽在基类的任何版本。因此,无论是在该层或者他的基类中对方法进行定义,重载机制都可以正常工作。
2、使用@Override注解可以防止你在不想重载时而意外地进行了重载。
3、如果需要使用向上转型,那么就使用继承技术,否则使用组合技术。
4、java除了static方法和final方法外,其他所有方法都是动态绑定,在运行时才确定对象的类型。因此final和static方法都不具有多态性。
5、private 方法被自动默认是final方法。
6、只有非private方法才可以被覆盖,在导出类中,对于基类的private方法最好采取不同的名称。
7、只有类的普通方法是多态的,对于类的域不是多态。因此,通常上将所有域设置成private。
8、构造器实际上是static方法。
9、初始化遵循以下顺序:
1) 在任何事物发生之前,将分配给对象的存储空间初始化成二进制的0。
2) 调用基类构造器。
3) 按声明顺序调用成员的初始化方法。包括基类中的成员
4) 调用导出类构造器的主体。
10、编写构造器时的原则是:尽可能简单的方法使对象进入正常状态,避免调用其他方法。在构造器内唯一能安全调用过的方法是基类中的final或private方法。调用其他方法,很可能会因为没有正确初始化,而产生异常。
11、 用继承表达行为间的差异,并用字段表达状态上的变化。