1.下面对于多态性的描述,错误的一项是?
A. 面向对象多态性描述的就是对象转型的操作
B. 对象可以自动实现向上转型;
C. 对象的向下转型需要强制转型
D. 可以利用instanceof方法判断某一个对象是否属于某个类的实例
正确答案是:A
1.父类引用指向子类对象,我们称这个过程为向上转型,属于自动类型转换。
2.向上转型后的父类引用变量只能调用它编译类型的方法,不能调用它运行时类型的方法。这时,我们就需要进行类型的强制转换,我们称为向下转型。
3.在向下转型过程中,必须将引用变量转成真实的子类类型(运行时类型)否则会出现类型转换异常ClassCastException。
4.多态:多态是面向对象很重要的一个特性,转型是多态的具体体现,多态还包括了重载和重写;
5.
instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为:
boolean result = obj instanceof Class
注意:编译器会检查 obj 是否能转换成右边的class类型,如果不能转换则直接报错,如果不能确定类型,则通过编译,具体看运行时定。其中 obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false。