Java多態知識小結+簡單代碼執行個體

來源:互聯網
上載者:User

一、在介紹多態之前,首先介紹一個重要的知識點——Java引用變數的類型

Java中引用變數有兩個類型:

1、編譯時間類型,由聲明該變數時使用的類型決定;

2、運行時類型,由實際賦給該變數的對象決定;

在編譯時間類型與運行時類型不一致時,就可能出現——多態


二、什麼是多態

多態就是“多種形態“;在程式運行過程中才決定用哪個方法,多態性是允許你將父類對象設定成和它的一個或多個子物件相等的技術,賦值後,父物件就可以根據當前賦值給它的子物件的特性運作,即為多態。

多態是物件導向編程領域的核心概念。(物件導向三大特性:封裝,繼承,多態)

注意:重載方法在編譯期間就確定了,是靜態;方法重載與多態無關,真正與多態相關的是重寫(覆蓋Override);


三、向上轉型

子類是一種特殊的父類,Java中允許把一個子類對象直接賦給一個父類引用變數,無需類型強制轉換,就被稱為向上轉型,這個過程是由系統自動完成的。


四、多態產生的必要條件

1、要有繼承

2、要有重寫(覆蓋Override)

3、子類對象賦給父類引用變數(父類引用指向子類對象)


五、多態代碼執行個體

package com.java.test;class Father {public String name = "father";//父類基本方法public void fatherMethod(){System.out.println("父類的基本方法。");}//被子類覆蓋方法public void overrideMethod(){System.out.println("父類被子類覆蓋方法。");}}public class Child extends Father{public String name = "child";//子類基本方法public void childMethod(){System.out.println("子類基本方法。");}//子類覆蓋父類方法public void overrideMethod(){System.out.println("子類覆蓋父類方法。");}public static void main(String[] args){//下面編譯時間類型與運行時類型相同,不存在多態Father father = new Father();System.out.println(father.name);father.fatherMethod();father.overrideMethod();System.out.println();//下面編譯時間類型與運行時類型相同,不存在多態Child child = new Child();System.out.println(child.name);child.childMethod();child.overrideMethod();System.out.println();//下面編譯時間類型與運行時類型不同,多態發生//父類引用指向子類對象,多態發生條件齊全//father2對象編譯時間類型是FatherClass,運行時類型是ChildClassFather father2 = new Child();//注意:與方法不同,對象的Field不具備多態性,下面輸出的是父類的nameSystem.out.println(father2.name);father2.fatherMethod();//多態發生,此處調用的是子類重寫的方法father2.overrideMethod();}}




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.