在java中,多態是同一個行為具有多個不同表現形式或形態的能力;多態就是同一個接口,使用不同的實例而執行不同操作。多態的優點:1、消除類型之間的耦合關係;2、可替換性;3、可擴充性;4、介面性;5、彈性;6、簡化性。
本教學操作環境:windows7系統、java8版、DELL G3電腦。
多態概述
1、多態是繼封裝、繼承之後,物件導向的第三大特性。
2、多態現實意義#:
現實事物常會體現出多種形態,如學生,學生是人的一種,則一個具體的同學張三既是學生也是人,即出現兩種形態。
Java作為面向對象的語言,同樣可以描述一個事物的多種形態。如Student類別繼承了Person類,一個Student的物件便既是Student,又是Person。
3、多型體現為父類別引用變數可以指向子類別物件。
4、前提條件:必須有子父類別關係。
注意:使用多型態後的父類別引用變數呼叫方法時,會呼叫子類別重寫後的方法。
5、多型態的定義與使用格式
定義格式:父類別類型變數名稱=new 子類別類型();
6、理解:
多態是同一個行為具有多個不同表現或形態的能力。
多態就是同一個接口,使用不同的實例而執行不同操作。
7、多態的優點
#消除型別之間的耦合關係
可替換性
#可擴充性
#介面性
彈性
簡化性
8、多型存在的三個必要條件
#繼承
重寫
父類別引用指向子類別物件:
Parent p = new Child();多態中成員的特徵
- 1、多型成員變數:編譯運行看左邊
Fu f=new Zi(); System.out.println(f.num);//f是Fu中的值,只能取到父中的值
2、多型成員方法:編譯看左邊,運行看右邊Fu f1=new Zi(); System.out.println(f1.show());//f1的门面类型是Fu,但实际类型是Zi,所以调用的是重写后的方法。
作用:用來判斷某個物件是否屬於某種資料類型。
- 注意: 返回類型為布林類型
- 使用案例:
Fu f1=new Zi(); Fu f2=new Son(); if(f1 instanceof Zi){ System.out.println("f1是Zi的类型"); } else{ System.out.println("f1是Son的类型"); }多態的轉換
多態性的轉換分為向轉型和向下轉型兩種
向轉型:多態本身就是向轉型化的過程使用格式:父類別類型變數名稱=new 子類別類型(); 適用場景:當不需要面對子類別類型時,透過提高擴充性,或使用父類別的功能就能完成對應的操作。
向下轉型:一個已經向上轉型的子類別物件可以使用強制類型轉換的格式,將父類別引用類型轉為子類別引用各類型 #########################使用格式:子類別類型變數名稱=(子類別類型) 父類別類型的變數;###### 適用情境:當使用子類別特有功能時。 #########多型案例:#########例1:(#######理解多態,可以重點看這個案例######)## #package day0524; public class demo04 { public static void main(String[] args) { People p=new Stu(); p.eat(); //调用特有的方法 Stu s=(Stu)p; s.study(); //((Stu) p).study(); } } class People{ public void eat(){ System.out.println("吃饭"); } } class Stu extends People{ @Override public void eat(){ System.out.println("吃水煮肉片"); } public void study(){ System.out.println("好好学习"); } } class Teachers extends People{ @Override public void eat(){ System.out.println("吃樱桃"); } public void teach(){ System.out.println("认真授课"); } }###範例2:######請問題目運行結果是什麼? ###
package day0524; public class demo1 { public static void main(String[] args) { A a=new A(); a.show(); B b=new B(); b.show(); } } class A{ public void show(){ show2(); } public void show2(){ System.out.println("A"); } } class B extends A{ public void show2(){ System.out.println("B"); } } class C extends B{ public void show(){ super.show(); } public void show2(){ System.out.println("C"); } }###答案:A B######相關影片教學推薦:###Java影片教學######
以上是java多態如何理解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 Linux新版
SublimeText3 Linux最新版

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。