首先由一下三段代码,请给出打印结果:

测试类:

1 public class Test {
2     public static void main(String[] args) {
3         Base p = new Sub("SubClass");
4         p.printA();
5     }
6 }

 

代码1:

 1 class Base {
 2     public String str = "Base class";
 3     
 4     public void printA() {
 5         System.out.println(str);
 6     }
 7 }
 8 
 9 class Sub extends Base{
10     public Sub(String str) {
11         this.str = str;
12     }
13 }

 

代码2

 1 class Base {
 2     public String str = "Base class";
 3     
 4     public void printA() {
 5         System.out.println(str);
 6     }
 7 }
 8 
 9 class Sub extends Base{
10     public String str = "Base class";
11     
12     public Sub(String str) {
13         this.str = str;
14     }
15 }

代码3:

 1 class Base {
 2     public String str = "Base class";
 3     
 4     public void printA() {
 5         System.out.println(str);
 6     }
 7 }
 8 
 9 class Sub extends Base{
10     public String str = "Base class";
11     
12     public Sub(String str) {
13         this.str = str;
14     }
15     
16     @Override
17     public void printA() {
18         System.out.println(str);
19     }
20 }

结果依次是:

代码1:SubClass

代码2:BaseClass

代码3:SubClass

分析:

posted on 2015-09-28 19:48  张释文  阅读(208)  评论(0编辑  收藏  举报