簡單了解Java中多態(tài)的基礎(chǔ)知識
一、多態(tài)
多態(tài)分為兩種:(1)引用的多態(tài)、(2)方法的多態(tài)
引用的多態(tài):
父類的引用可以指向本類的對象;
父類的引用可以指向子類的對象;
注意:子類的對象不可以指向父類的對象,如下圖所示
方法的多態(tài):
創(chuàng)建本類對象時,調(diào)用的方法為本類的方法;
創(chuàng)建子類對象時,調(diào)用的方法為子類重寫的方法或者繼承的方法;
注意:父類的引用調(diào)用的方法不能是子類獨(dú)有的方法,必須是從父類繼承的方法或重寫父類的方法。、
二、多態(tài)中的引用類型轉(zhuǎn)換
1、向上類型轉(zhuǎn)換(隱式/自動類型轉(zhuǎn)換),是小類型到大類型的轉(zhuǎn)換。不存在風(fēng)險。
2、向下類型轉(zhuǎn)換(強(qiáng)制類型轉(zhuǎn)換),是大類型向小類型轉(zhuǎn)換。有風(fēng)險。
3、instanceof運(yùn)算符,來解決引用對象的類型,避免類型轉(zhuǎn)換的安全問題。(animal instanceof Cat)
三、抽象類
1、抽象類前使用abstract關(guān)鍵字修飾,則該類為抽象類;
2、在某種情況下,某個父類只是知道某個子類應(yīng)該包含怎樣的方法,但無法準(zhǔn)確知道這些子類如何實(shí)現(xiàn)這些方法。
3、使用規(guī)則:
(1)abstract定義抽象類;
(2)abstract定義抽象方法,只有聲明,不需要實(shí)現(xiàn);
(3)包含抽象方法的類是抽象類;
(4)抽象類中可以包含普通方法,也可以沒有抽象方法;
(5)抽象類不能直接創(chuàng)建,可以定義引用變量;
4、抽象方法沒有方法體依分號結(jié)尾;
四、接口
1、接口的概念;一種特殊的類,由全局常量和公共的抽象的方法所組成;
2、類是一種具體實(shí)現(xiàn)體,而接口則定義了某一批類所需要遵守的規(guī)范,接口不關(guān)心這些類的內(nèi)部數(shù)據(jù),也不關(guān)心這些類里方法的實(shí)現(xiàn)細(xì)節(jié),它只規(guī)定這些類里必須提供某些方法;
3、定義接口用interface關(guān)鍵字;public (abstract) interface ,接口可以繼承多個父接口,這一點(diǎn)和類區(qū)分 ;
接口中定義的常量,即使定義時沒有添加public static final修飾符,系統(tǒng)也會自動的添加;
接口中的方法總是抽象方法,即使定義的時候不添加public abstract,系統(tǒng)也會自動加上;
4、可以用一個接口的引用指向一個實(shí)現(xiàn)了接口的對象
5、使用匿名內(nèi)部類實(shí)現(xiàn)接口——兩種方法
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java 根據(jù)網(wǎng)絡(luò)URL獲取該網(wǎng)頁上面所有的img標(biāo)簽并下載圖片
這篇文章主要介紹了Java 根據(jù)網(wǎng)絡(luò)URL獲取該網(wǎng)頁上面所有的img標(biāo)簽并下載圖片,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-11-11SpringBoot過濾敏感詞的兩種實(shí)現(xiàn)方式
Spring Boot本身并不直接提供過濾敏感詞的功能,但你可以使用第三方庫或者自定義過濾器來實(shí)現(xiàn)這個需求,所以本文給大家介紹了SpringBoot過濾敏感詞的兩種實(shí)現(xiàn)方式,感興趣的朋友可以參考下2024-06-06springboot+vue實(shí)現(xiàn)websocket配置過程解析
這篇文章主要介紹了springboot+vue實(shí)現(xiàn)websocket配置過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04Spring Boot集成Mybatis中如何顯示日志的實(shí)現(xiàn)
這篇文章主要介紹了Spring Boot集成Mybatis中如何顯示日志的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07