面试题61(关于继承多态的理解)

时间:2022-05-11
本文章向大家介绍面试题61(关于继承多态的理解),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
面试题61

2018年1月21日

本期题目

(单选题)下列选项中哪一个是正确的?

package Wangyi;
class Base{
    public void method() {
        System.out.println("Base");
    } 
}
class Son extends Base{
    public void method() {
        System.out.println("Son");
    }
    public void methodB() {
        System.out.println("SonB");
    }
}
public class Test01{
    public static void main(String[] args) {
        Base base = new Son();
        base.method();
        base.methodB();
    }
}

问这个程序的输出结果。

A Base SonB

B Son SonB

C Base Son SonB

D 编译不通过

考点:考察求职者对继承多态的理解

出现频率:★★★★★

【面试题分析】

Base base=new Son(); 是多态的表示形式。父类对象调用了子类创建了Son对象。

base调用的method()方法就是调用了子类重写的method()方法。

而此时base还是属于Base对象,

base调用methodB()时Base对象里没有这个方法,所以编译不通过。

要想调用的话需要先通过SON son=(SON)base;强制转换,然后用son.methodB()调用就可以了。

所以参考答案是 (D)