多态的两道练习题

第一题

 1 /*
 2     看程序写结果:先判断编译有没有问题,如果没有问题,再写出运行结果。
 3     
 4     对于多态中的成员方法的访问特点:编译看左边,运行看右边。
 5     
 6     因为成员方法有重写,父类的成员方法会被子类覆盖掉。因为成员方法是跟对象相关的。
 7     
 8     结果是:
 9         zi show
10 */
11 class Fu {
12     public void show() {
13         System.out.println("fu show");
14     }
15 }
16 class Zi extends Fu {
17     public void show() {
18         System.out.println("zi show");
19     }
20 
21     public void method() {
22         System.out.println("zi method");
23     }
24 }
25 class DuoTaiTest3 {
26     public static void main(String[] args) {
27         Fu f = new Zi();
28         //找不到符号
29         //f.method();
30         f.show(); //zi show
31     }
32 }

第二题

 1 /*
 2     看程序写结果:先判断编译有没有问题,如果没有问题,再写出运行结果。
 3     
 4     对于多态中的成员方法的访问特点:编译看左边,运行看右边。
 5         
 6     继承的时候:
 7         子类中有和父类中一样的方法,叫方法重写。
 8         子类中没有父类中出现过的方法,则说明父类的方法被子类继承过来了。
 9         
10     结果是:
11 12 13 */
14 class A {
15     public void show() {
16         show2();
17     }
18     public void show2() {
19         System.out.println("我");
20     }
21 }
22 class B extends A {
23     /*
24     //子类中没有父类中出现过的方法,则说明父类的方法被子类继承过来了。
25     public void show() {
26         show2();
27     }
28     */
29     //子类中有和父类中一样的方法,叫方法重写。
30     public void show2() {
31         System.out.println("爱");
32     }
33 }
34 class C extends B {
35     public void show() {
36         super.show();
37     }
38     public void show2() {
39         System.out.println("你");
40     }
41 }
42 public class DuoTaiTest4 {
43     public static void main(String[] args) {
44         A a = new B();
45         a.show();
46         
47         B b = new C();
48         b.show();
49     }
50 }
posted @ 2018-02-16 23:48  黑泽君  阅读(179)  评论(0编辑  收藏  举报