亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java 父類子類有同名方法時如何調(diào)用的實現(xiàn)

 更新時間:2020年09月24日 10:25:00   作者:藍藍223  
這篇文章主要介紹了java 父類子類有同名方法時如何調(diào)用的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

父類引用默認調(diào)用子類重寫的方法

如果父類的引用p指向了子類的實例,則通過這個引用p訪問同名方法時,調(diào)用的是子類重寫的方法。

父類引用p可以指向不同的子類,調(diào)用不同子類重寫的不同的同名方法,進而達到類間多態(tài)的效果。

但是,父類的引用只能訪問子類重寫的方法,父類中沒有的方法,父類的引用不能訪問。也就是說,通過父類的引用來調(diào)用子類的方法時,不能訪問到子類后來自己定義的方法。

子類引用默認調(diào)用自定義的方法

通過子類的引用訪問同名方法時,默認是重寫之后的同名方法。

子類通過super關(guān)鍵字來調(diào)用被隱藏的父類方法

如果還要訪問父類的同名方法,可以使用super關(guān)鍵字來顯示調(diào)用。

多態(tài)

多態(tài)存在的三個必要條件:要有繼承、要有重寫、父類變量引用子類對象。

重寫原則:兩同兩小一大

兩同:

方法名相同

形參列表要相同

兩小

拋出的異常類型小于等于父類方法拋出的異常類型,也就是要么是原來的異常類型(相等),要么是原來異常類型的子類(更小)

返回值類型要小于等于比父類的返回值類型,也就是要么返回原來的返回值類型(相等),要么是原來的返回值類型的子類(更小)

一大

子類重寫的方法的訪問權(quán)限要大于等于父類方法的訪問權(quán)限:

如果原來的訪問類型為public,則重寫的方法的訪問權(quán)限只能是public。

在Java 8之前,Java接口的方法默認使用public abstract修飾,所以實現(xiàn)接口方法時,訪問權(quán)限只能是public。

重載原則:兩同一不同

兩同

重載發(fā)生在同一個類中,

跟繼承沒有關(guān)系.

一不同

形參列表不同

如何判斷是重載還是重寫

看形參列表:

當方法名相同,形參也相同的時候,就是重寫,此時還需要滿足重寫的其他條件,不然就會出現(xiàn)錯誤。

當方法名相同,但是形參列表不同的時候,就是重載

覆蓋和重載的區(qū)別

對形參列表的要求不同

重寫要求形參列表要相同,

而重載要求形參列表不相同

對拋出的異常的要求不同

重寫要求拋出的異常更小或相等

重載對拋出的異常沒有要求

對返回值類型的要求不同

重寫要求返回值類型更小或相等

重載對返回值類型沒有要求

對訪問權(quán)限的要求不同

重寫要求訪問權(quán)限要更大或相等,

而重載對訪問權(quán)限沒有要求

發(fā)生的范圍不同

重寫發(fā)生子類繼承父類的時候

重載發(fā)生在同一個類中,和繼承沒有關(guān)系.

重載和重寫的相同點

方法名要相同

補充知識:java中子類繼承父類和實現(xiàn)接口有同名方法怎么處理

我們來一步步驗證:

1.子類繼承父類,實現(xiàn)接口,父類和接口有同名方法

以上這篇java 父類子類有同名方法時如何調(diào)用的實現(xiàn)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

public interface MyInterface {
 void test();
}
public class Father {
 public void test() {
 System.out.println("父類方法");
 }
}

public class Son extends Father implements MyInterface{}

子類直接繼承父類和實現(xiàn)接口不實現(xiàn)接口方法不報錯,說明這種情況下默認父類實現(xiàn)該方法

2.我們將父類中方法注釋掉,看看結(jié)果

public interface MyInterface {
 void test();
}
public class Father {
// public void test() {
// System.out.println("父類方法");
// }
}

很明顯,子類在繼承過程中出現(xiàn)了錯誤提示,需要實現(xiàn)接口中的方法

3.將父類中方法取消注釋,子類實現(xiàn)該方法,代碼如下:

public interface MyInterface {
 void test();
}
public class Father {
 public void test() {
 System.out.println("父類方法");
 }
}

可以看到,子類方法提示是重寫的父類方法。

至此,驗證完畢!

以上這篇java 父類子類有同名方法時如何調(diào)用的實現(xiàn)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java模擬實現(xiàn)ATM機

    Java模擬實現(xiàn)ATM機

    這篇文章主要為大家詳細介紹了Java模擬實現(xiàn)ATM機,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • 詳解java.lang.NumberFormatException錯誤及解決辦法

    詳解java.lang.NumberFormatException錯誤及解決辦法

    這篇文章主要介紹了詳解java.lang.NumberFormatException錯誤及解決辦法,本文詳解的介紹了錯誤的解決方法,感興趣的可以一起來了解一下
    2020-05-05
  • SpringBoot自定義線程池,執(zhí)行定時任務(wù)方式

    SpringBoot自定義線程池,執(zhí)行定時任務(wù)方式

    這篇文章主要介紹了SpringBoot自定義線程池,執(zhí)行定時任務(wù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Java 無參數(shù)構(gòu)造函數(shù)的應(yīng)用

    Java 無參數(shù)構(gòu)造函數(shù)的應(yīng)用

    本篇文章主要介紹了Java 無參數(shù)構(gòu)造函數(shù)的應(yīng)用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • 詳解springboot集成websocket的兩種實現(xiàn)方式

    詳解springboot集成websocket的兩種實現(xiàn)方式

    這篇文章主要介紹了springboot集成websocket的兩種實現(xiàn)方式,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • SpringBoot集成JWT實現(xiàn)登陸驗證的方法詳解

    SpringBoot集成JWT實現(xiàn)登陸驗證的方法詳解

    JSON?Web?Token(JWT)是一個開放的標準(RFC?7519),它定義了一個緊湊且自包含的方式,用于在各方之間以JSON對象安全地傳輸信息。本文將利用SpringBoot集成JWT實現(xiàn)登陸驗證,感興趣的可以了解一下
    2022-05-05
  • MyBatis中insert操作返回主鍵的實現(xiàn)方法

    MyBatis中insert操作返回主鍵的實現(xiàn)方法

    在使用MyBatis做持久層時,insert語句默認是不返回記錄的主鍵值,而是返回插入的記錄條數(shù)。這篇文章主要介紹了MyBatis中insert操作返回主鍵的方法,需要的朋友可以參考下
    2016-09-09
  • springboot整合mybatis實現(xiàn)簡單的一對多級聯(lián)查詢功能

    springboot整合mybatis實現(xiàn)簡單的一對多級聯(lián)查詢功能

    這篇文章主要介紹了springboot整合mybatis實現(xiàn)簡單的一對多級聯(lián)查詢功能,分步驟通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Java中ExecutorService和ThreadPoolExecutor運行原理

    Java中ExecutorService和ThreadPoolExecutor運行原理

    本文主要介紹了Java中ExecutorService和ThreadPoolExecutor運行原理,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Java?File類的概述及常用方法使用詳解

    Java?File類的概述及常用方法使用詳解

    Java?File類的功能非常強大,下面這篇文章主要給大家介紹了關(guān)于Java中File類的概述及常用方法使用,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09

最新評論