欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java方法的覆蓋與隱藏的區(qū)別分析

 更新時(shí)間:2013年04月27日 10:11:40   作者:  
本篇文章介紹了,關(guān)于Java方法的覆蓋與隱藏的區(qū)別分析。需要的朋友參考下

關(guān)于隱藏和覆蓋的區(qū)別,要提到RTTI(run-time type identification)(運(yùn)行期類型檢查),也就是運(yùn)行期的多態(tài),當(dāng)一個(gè)父類引用指向子類對(duì)象的時(shí)候,請(qǐng)看下面我編寫的一段代碼:

復(fù)制代碼 代碼如下:

public class RunTime {

    public static void main(String[] args) {
        Animal a = new Cat();
        System.out.println(a.A);
        System.out.println(a.b);
        a.voice();
        a.method();

    }

}

class Dog extends Animal {
    public int b = 3;
    public static int A = 3;
    public static void method(){
        System.out.println("狗");
    }
    public void voice() {
        System.out.println("狗叫");
    }
}

class Cat extends Animal {
    public int b = 4;
    public static int A = 4;
    public static void method(){
        System.out.println("貓");
    }
    public void voice() {
        System.out.println("貓叫");
    }
}

class Animal {
    public int b = 0;
    public static int A = 0;
    public static void method(){
        System.out.println("動(dòng)物");
    }
    public void voice() {
        System.out.println("動(dòng)物叫");
    }
}


輸出結(jié)果是:
0
0
貓叫
動(dòng)物

您可以看到,當(dāng)父類Animal的引用a指向子類Dog時(shí),RTTI在運(yùn)行期會(huì)自動(dòng)確定該引用的真是類型,當(dāng)子類  覆蓋  了父類的方法時(shí),則直接調(diào)用子類的方法,打印出“貓叫”;然而非靜態(tài)的方法在子類中重寫的話就是被覆蓋,而靜態(tài)的方法被子類重寫的話就是隱藏,另外,靜態(tài)變量和成員變量也是被隱藏,而RTTI是只針對(duì)覆蓋,不針對(duì)影藏,所以,靜態(tài)變量 A 和 非靜態(tài)變量 b 以及靜態(tài)方法method() 均不通過(guò)RTTI,是哪個(gè)類的引用就調(diào)用誰(shuí)的靜態(tài)方法,成員變量,而這里是父類Animal的引用,所以直接調(diào)用父類Animal中的方法以及成員變量。所以靜態(tài)方法 method(),  靜態(tài)變量 A 和成員變量 b 打印結(jié)果全是父類中的。只用被覆蓋的非靜態(tài)方法voice()才打印子類的。

相關(guān)文章

  • Spring Boot整合Redis的完整步驟

    Spring Boot整合Redis的完整步驟

    這篇文章主要給大家介紹了關(guān)于Spring Boot整合Redis的完整步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • springboot整合mail實(shí)現(xiàn)郵箱的發(fā)送功能

    springboot整合mail實(shí)現(xiàn)郵箱的發(fā)送功能

    本文分步驟給大家介紹springboot整合mail實(shí)現(xiàn)郵箱的發(fā)送功能,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-09-09
  • kotlin快速入門之標(biāo)準(zhǔn)函數(shù)與靜態(tài)方法

    kotlin快速入門之標(biāo)準(zhǔn)函數(shù)與靜態(tài)方法

    學(xué)完了Kotlin的基礎(chǔ)知識(shí),是時(shí)候來(lái)來(lái)學(xué)習(xí) Kotlin的標(biāo)準(zhǔn)函數(shù)和靜態(tài)方法了,下面這篇文章主要給大家介紹了關(guān)于kotlin快速入門之標(biāo)準(zhǔn)函數(shù)與靜態(tài)方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • java 如何從字符串里面提取時(shí)間

    java 如何從字符串里面提取時(shí)間

    這篇文章主要介紹了java實(shí)現(xiàn)從字符串里面提取時(shí)間的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java中的HashMap和Hashtable區(qū)別解析

    Java中的HashMap和Hashtable區(qū)別解析

    這篇文章主要介紹了Java中的HashMap和Hashtable區(qū)別解析,HashMap和Hashtable都實(shí)現(xiàn)了Map接口,但決定用哪一個(gè)之前先要弄清楚它們之間的區(qū)別,主要的區(qū)別有線程安全性、同步和速度,需要的朋友可以參考下
    2023-11-11
  • Java中Jedis基本使用

    Java中Jedis基本使用

    Redis的Java實(shí)現(xiàn)的客戶端,本文主要介紹了Java中Jedis基本使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • spring初始化源碼之關(guān)鍵類和擴(kuò)展接口詳解

    spring初始化源碼之關(guān)鍵類和擴(kuò)展接口詳解

    Spring就是一個(gè)大工廠,可以將所有對(duì)象的創(chuàng)建和依賴關(guān)系的維護(hù)交給Spring管理,下面這篇文章主要給大家介紹了關(guān)于spring初始化源碼之關(guān)鍵類和擴(kuò)展接口的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • 三種Spring BeanName生成器,你了解嗎

    三種Spring BeanName生成器,你了解嗎

    無(wú)論我們是通過(guò) XML 文件,還是 Java 代碼,亦或是包掃描的方式去注冊(cè) Bean,都可以不設(shè)置BeanName,而Spring均會(huì)為之提供默認(rèn)的 beanName,本文我們就來(lái)看看 Spring 中三種處理不同情況的 beanName生成器吧
    2023-09-09
  • java注解之運(yùn)行時(shí)修改字段的注解值操作

    java注解之運(yùn)行時(shí)修改字段的注解值操作

    這篇文章主要介紹了java注解之運(yùn)行時(shí)修改字段的注解值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • Spring?Boot?整合持久層之Spring Data JPA

    Spring?Boot?整合持久層之Spring Data JPA

    在介紹Spring Data JPA的時(shí)候,我們首先認(rèn)識(shí)下Hibernate。Hibernate是數(shù)據(jù)訪問(wèn)解決技術(shù)的絕對(duì)霸主,使用O/R映射技術(shù)實(shí)現(xiàn)數(shù)據(jù)訪問(wèn),O/R映射即將領(lǐng)域模型類和數(shù)據(jù)庫(kù)的表進(jìn)行映射,通過(guò)程序操作對(duì)象而實(shí)現(xiàn)表數(shù)據(jù)操作的能力,讓數(shù)據(jù)訪問(wèn)操作無(wú)須關(guān)注數(shù)據(jù)庫(kù)相關(guān)的技術(shù)
    2022-08-08

最新評(píng)論