携程java面向对象面试题

2015/10/09 08:29
阅读数 265
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Base {
     private String name = "hello" ;
     public Base() {
//      System.out.println(this);
//      关键是要认识到调用callName方法的是sub类型的对象
         callName();
     }
     public void callName(){
         System.out.println(name);
     }
     public static void main(String[] args) {
         new Sub();
     }
}
 
class Sub extends Base{
     private String name= "world" ;
     public void callName(){
         System.out.println(name);
     }
}

相比原题有点小改动,问题就是最后控制台输出什么。个人认为这个问题的关键在于认识到Base()对象构造方法中调用callName()的是什么对象。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部