根据以下代码使用多态创建对象,并且调用子类特有方法,下列选项中正确的是?
class Father {
public void fun1(){
System.out.println("Father.fun1");
}
}
class Son1 extends Father{
public void fun2(){
System.out.println("Son1.fun2");
}
}
class Son2 extends Father{
public void fun2(){
System.out.println("Son2.fun2");
}
}Father fa = new Son1();
fa.fun2();Father fa = new Son1();
Son2 s = (Son2)fa;
s.fun2();Father fa = new Son1();
Son1 son = (Son1)fa;
son.fun2();Father fa = new Father();
Son2 s = (Son2)fa;
s.fun2();根本问题在于区分对象类型与引用类型,对象就像密码本,而引用类型就像读取密码的掩码卡片,两个都正确,才能读取内容。
当然子类也会继承一部分父类的掩码卡片,所以子类能读取父类的密码内容。
当然子类也会继承一部分父类的掩码卡片,所以子类能读取父类的密码内容。