一道关于继承的面试题

题目描述

class Super{
    private  String name = "Super";
    public String getName() {
        return this.name;
    }
}
public class Sub extends Super{
    private String name = "Sub";
    public static void main(String[] args) {
        Sub sub = new Sub();
        //Super
        System.out.println(sub.getName());
    }
}


你期待的结果是什么?实际看到的错误信息又是什么?

我以为会输出sub, 但实际输出了super. 我一直以为this指代的是方法的调用者, getName()是sub调用的, 所以其中this的应该是sub, 那么sub.name应该是sub; 但是这很明显错了

元芳怎么了
浏览 434回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java