1. 程式人生 > >java學習-多型

java學習-多型

1、類的繼承關係

在這裡插入圖片描述

1.1 PDemo2.java
public class PDemo2 {

    public void say(){
        System.out.println("PDemo2 say().....");
    }
}
1.2 CDemo2.java
public class CDemo2 extends PDemo2 {

    public void eat(){
        System.out.println("CDemo2  eat()....");
    }

    public void say(){
        System.out.println("CDemo2  say()....");
    }
}
2、測試
public class ExtendsDemo {

    public static void main(String[] args){

        ExtendsDemo.test1(new CDemo2());
        ExtendsDemo.test2(new CDemo2());

    }

    public static void test1(PDemo2 demo2){
        demo2.say();
    }

    public static void test2(PDemo2 demo2){
        ((CDemo2)demo2).eat();
    }
}
2.1 輸出結果
CDemo2  say()....
CDemo2  eat()....
2.2 總結
1、子類可以自動向上轉型為父類
2、方法引數傳遞為引用傳遞,儘管引數是父類,但是其引用仍然指向的是子類。因此當方法重寫後,傳入的是誰就呼叫誰的方法。
3、如果父類可以被強制轉換為子類,並執行子類的方法

本文是學習過程中的思考和總結,如果請大家多多指正!