最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java 父類子類有同名方法時如何調用的實現

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

父類引用默認調用子類重寫的方法

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

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

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

子類引用默認調用自定義的方法

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

子類通過super關鍵字來調用被隱藏的父類方法

如果還要訪問父類的同名方法,可以使用super關鍵字來顯示調用。

多態(tài)

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

重寫原則:兩同兩小一大

兩同:

方法名相同

形參列表要相同

兩小

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

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

一大

子類重寫的方法的訪問權限要大于等于父類方法的訪問權限:

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

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

重載原則:兩同一不同

兩同

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

跟繼承沒有關系.

一不同

形參列表不同

如何判斷是重載還是重寫

看形參列表:

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

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

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

對形參列表的要求不同

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

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

對拋出的異常的要求不同

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

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

對返回值類型的要求不同

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

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

對訪問權限的要求不同

重寫要求訪問權限要更大或相等,

而重載對訪問權限沒有要求

發(fā)生的范圍不同

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

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

重載和重寫的相同點

方法名要相同

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

我們來一步步驗證:

1.子類繼承父類,實現接口,父類和接口有同名方法

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

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

public class Son extends Father implements MyInterface{}

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

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

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

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

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

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

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

至此,驗證完畢!

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

相關文章

  • JAVA基于靜態(tài)數組實現棧的基本原理與用法詳解

    JAVA基于靜態(tài)數組實現棧的基本原理與用法詳解

    這篇文章主要介紹了JAVA基于靜態(tài)數組實現棧的基本原理與用法,結合實例形式詳細分析了JAVA基于靜態(tài)數組實現棧相關原理、用法與操作注意事項,需要的朋友可以參考下
    2020-03-03
  • 單點登錄的概念及SpringBoot實現單點登錄的操作方法

    單點登錄的概念及SpringBoot實現單點登錄的操作方法

    在本文中,我們將使用Spring Boot構建一個基本的單點登錄系統(tǒng),我們將介紹如何使用Spring Security和JSON Web Tokens(JWTs)來實現單點登錄功能,本文假設您已經熟悉Spring Boot和Spring Security,感興趣的朋友一起看看吧
    2024-10-10
  • 關于@Value取值為NULL的解決方案

    關于@Value取值為NULL的解決方案

    這篇文章主要介紹了關于@Value取值為NULL的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 詳解Spring?@Lazy注解為什么能破解死循環(huán)

    詳解Spring?@Lazy注解為什么能破解死循環(huán)

    這篇文章主要來和大家探討一下Spring中的@Lazy注解為什么能破解死循環(huán),文中的示例代碼講解詳細,具有一定的參考價值,需要的可以了解一下
    2023-07-07
  • SpringBoot中的CompletableFuture類詳解

    SpringBoot中的CompletableFuture類詳解

    這篇文章主要介紹了SpringBoot中的CompletableFuture類詳解,在?Java8中,引入了CompletableFuture類,它提供了一種簡單而強大的方式來執(zhí)行異步任務,今天我們就來詳細解讀一下這個類,需要的朋友可以參考下
    2023-07-07
  • IDEA使用技巧之如何將本地項目和git遠程項目關聯

    IDEA使用技巧之如何將本地項目和git遠程項目關聯

    這篇文章主要介紹了IDEA使用技巧之如何將本地項目和git遠程項目關聯問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • springboot實現定時器(一看即會,非常簡單)

    springboot實現定時器(一看即會,非常簡單)

    這篇文章主要介紹了springboot實現定時器(一看即會,非常簡單),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • SpringBoot 整合 Avro 與 Kafka的詳細過程

    SpringBoot 整合 Avro 與 Kafka的詳細過程

    本文介紹了如何在Spring Boot中使用Avro和Kafka進行數據的序列化和反序列化,并通過MyBatisPlus將數據存入數據庫,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • SpringBoot中API接口參數獲取方式小結

    SpringBoot中API接口參數獲取方式小結

    在Spring Boot中,API接口參數可以通過多種方式獲取,具體取決于你定義的API接口參數類型(如路徑參數、查詢參數、請求體參數、請求頭等),本文給大家就介紹了一些常見的參數獲取方式,需要的朋友可以參考下
    2024-06-06
  • springsecurity基于token的認證方式

    springsecurity基于token的認證方式

    本文主要介紹了springsecurity基于token的認證方式,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08

最新評論

孙吴县| 临夏县| 光泽县| 射阳县| 贵州省| 邢台县| 望城县| 元氏县| 阿巴嘎旗| 旺苍县| 扎兰屯市| 深州市| 昌平区| 巴彦淖尔市| 西青区| 余庆县| 宜昌市| 泰州市| 喀喇沁旗| SHOW| 孟村| 嘉义市| 墨玉县| 咸宁市| 岳阳市| 交口县| 合川市| 罗田县| 内丘县| 商城县| 互助| 义马市| 武夷山市| 建湖县| 陇川县| 怀集县| 高平市| 余庆县| 温州市| 威远县| 平泉县|