final在类之前
表示该类是最终类,表示该类不能再被继承。
final在方法之前
表示该方法是最终方法,该方法不能被任何派生的子类覆盖。
final在变量之前
表示变量的值在初始化之后就不能再改变;相当于定义了一个常量。
上转型对象的特点:
A a = new B();
实例化是B,只不过是A去接收而已。所以只能看到A中定义的属性与方法。
A:不能操作子类新增的成员变量和方法;
B:可以操作子类继承的变量,也可操作子类继承或重写的方法;
如果子类重写了父类的某个方法后,当对象的上转型对象调用这个方法时一定是调用了这个子类重写的方法。
使用上转型对象的优缺点:
缺点:不能操作子类新增的成员变量和方法
优点:
A:上转型对象是实现对象多态的前提条件。
B:以牺牲少部分的功能来换取代码设计的最大幅度的优化。
类型的下溯:
如果此时上转型对象想要操作子类新增的方法和属性,可以进行
对象类型的下溯。
下溯成功后,就可以看到自已新增的属性与方法。
类型的上/下溯的注意点:
操作的对象都是针对子类进行上/下的转换。
操作的上/下转型对象之间必须要有继承关系。
当有参数精确匹配时,调用的是精确匹配的方法。
如果没有,寻找参数对应的父类类型。(Object,String,StringBuffer)
重写/上转型对象:一旦用上转型对象的话,方法被子类重写,肯定调用的是
子类重写的方法。
1:什么是多态:
多态就是指父类的某个方法被子类重写时,
可以各自产生自己的功能行为。
2:多态的条件
A:要有继承关系
B:子类必须对父类的方法进行重写
C:父类的引用要指向子类(对象的上转型)。
3:多态的中的父类的引用要指向子类造成了多态的后期绑定。
前期绑定:编译期间就已经确定其类型。
后期绑定:在运行期间才确定对象类型。
J2SE基础:5.面向对象的特性2,布布扣,bubuko.com
原文地址:http://blog.csdn.net/wobendiankun/article/details/37729119