首页 > 代码库 > 多态案例

多态案例

多态案例

  1. 例一
    1. . class Test1Demo {
    2. .         public static void main(String[] args) {
    3. .             Fu f = new Zi();
    4. . //f.method(); //编译看左边,运行看右边,左边没有method方法,报错,
    5. .             f.show();//编译看左边,运行看右边,父类有show,编译没问题,输出Zishow,如果Zi类没有show方法,则运行时发现子类没有去重写,则直接调用的是父类show输出FU show,子类把fu类show方法继承下来了
    6. .         }
    7. . }
    8.  
    9. . class Fu {
    10.   public void show() {
    11.     System.out.println("fu show");
    12.   }
    13. }
    14. . class Zi extends Fu {
    15. .     public void show() {
    16. .         System.out.println("zi show");
    17. .     }
    18. .
    19. .     public void method() {
    20. .         System.out.println("zi method");
    21. .     }
    22. . }
    23. .

    2:

    1. . class A {
    2. .         public void show() {
    3. .             show2(); // 调用了show2
    4. .         }
    5. .            public void show2() {
    6. .             System.out.println("");
    7. .         }
    8. . }
    9. . class B extends A { //子类继承了A
    10. .     public void show2() {
    11. .         System.out.println("");
    12. .     }
    13. . }
    14. . class C extends B {
    15. .     public void show() {
    16. .         super.show();
    17. .     }
    18. .     public void show2() {
    19. .         System.out.println("");
    20. .     }
    21. . }
    22. . public class Test2DuoTai {
    23. .     public static void main(String[] args) {
    24. .         A a = new B();//编译看做左边,b中没有show,但是继承了A类的show方法.
    25. .         a.show();//爱
    26. . //父类show方法调用show2,子类中有show2,则show2是子类的show2.就相当于把这个方法写到B类中看
    27. .         B b = new C();//编译看做左边,b中没有show,但是继承了A类的show方法.
    28. ..         b.show();//你
    29. //运行看的是右边,子类show,super.show(),调用父类show方法,调用show2,调用子类show2
    30.  
    31. . }
    32. . }

     

多态案例