JAVA覆蓋和重寫的區(qū)別及說明
JAVA覆蓋和重寫的區(qū)別
經(jīng)常聽到兩種話
- 1.覆蓋=重寫。
- 2.靜態(tài)方法可以覆蓋但不能重寫嗎,這兩句話聽起來挺矛盾的是不是
廢話不多說直接上圖:
package com.wangshili;
public class Main {
public static void main(String[] args) {
Father f =new Child();//創(chuàng)建子類對象,父類引用
f.print();//調(diào)用父類方法
((Child)f).print();//向下轉(zhuǎn)型,調(diào)用子類方法
while(true);
}
}
/*
* 重寫有多態(tài),調(diào)用方法時看對象
*/
class Father{
public void print(){
System.out.println ("這是父類");
}
}
class Child extends Father{
public void print(){
System.out.println ("這是子類");
}
}
package com.wangshili;
public class Test {
public static void main(String[] args) {
Father f =new Child();//創(chuàng)建子類對象,父類引用
f.print();//調(diào)用父類方法
((Child)f).print();//向下轉(zhuǎn)型,調(diào)用子類方法
while(true);
}
}
/*
* 覆蓋沒多態(tài),調(diào)用方法時看引用類型(靜態(tài)屬于類)
*/
class Father{
public static void print(){
System.out.println ("這是父類");
}
}
class Child extends Father{
public static void print(){
System.out.println ("這是子類");
}
}
認(rèn)真讀完上面兩份代碼
你應(yīng)該能發(fā)現(xiàn)區(qū)別了,我總結(jié)下:
1.非靜態(tài)方法,覆蓋=重寫,有多態(tài)
2.靜態(tài)方法,是不能重寫的,比如你添加@overwrite直接就報錯了,我們知道靜態(tài)屬于類,通過類名就可以直接調(diào)用該方法,所以這里也是一樣,只看引用類型,跟創(chuàng)建對象類型無關(guān)。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
JAVA Iterator接口與增強(qiáng)for循環(huán)的實現(xiàn)
這篇文章主要介紹了JAVA Iterator接口與增強(qiáng)for循環(huán)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
SpringBoot 項目添加 MDC 日志鏈路追蹤的執(zhí)行流程
日志鏈路追蹤就是將一個標(biāo)志跨線程進(jìn)行傳遞,在一般的小項目中也就是在你新起一個線程的時候,或者使用線程池執(zhí)行任務(wù)的時候會用到,比如追蹤一個用戶請求的完整執(zhí)行流程,本文給大家介紹SpringBoot MDC 日志鏈路追蹤的代碼,感興趣的朋友一起看看吧2021-06-06
Java基礎(chǔ)教程之理解Annotation詳細(xì)介紹
這篇文章主要介紹了Java基礎(chǔ)教程之理解Annotation詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2017-01-01
SpringBoot整合RabbitMQ實現(xiàn)延遲隊列的示例詳解
這篇文章主要為大家詳細(xì)介紹了SpringBoot如何整合RabbitMQ實現(xiàn)延遲隊列,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的可以了解一下2023-04-04
springboot對接第三方微信授權(quán)及獲取用戶的頭像和昵稱等等
這篇文章主要介紹了springboot對接第三方微信授權(quán)及獲取用戶的頭像和昵稱等等,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
Spring Boot配置application.yml及根據(jù)application.yml選擇啟動配置的操作
Spring Boot中可以選擇applicant.properties 作為配置文件,也可以通過在application.yml中進(jìn)行配置,讓Spring Boot根據(jù)你的選擇進(jìn)行加載啟動配置文件,本文給大家介紹Spring Boot配置application.yml及根據(jù)application.yml選擇啟動配置的操作方法,感興趣的朋友一起看看吧2023-10-10
Springboot任務(wù)之異步任務(wù)的使用詳解
今天學(xué)習(xí)了一個新技能SpringBoot實現(xiàn)異步任務(wù),所以特地整理了本篇文章,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06

