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

java多態(tài)中的就近原則介紹

 更新時(shí)間:2021年12月23日 14:13:06   作者:踏過山河,踏過海  
大家好,本篇文章主要講的是java多態(tài)中的就近原則介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽

直接上題:

在這里插入圖片描述

題目補(bǔ)充:

class A {
    int m;                     //-10
    int getM() {
        return m;
    }
    int seeM() {
        return m;
    }
}
class B extends A {
    int m ;                      //10
    int getM() {
       // System.out.println(this.m+"............"+super.m);
        return m+10;
    }
}
public class Test {
    public static void main(String args[]) {
        B b = new B();                               //先找B,B沒有再找A,找A的時(shí)候,就要注意:就近原則了
        b.m = 10;
        //此刻,A類的m為0,B類的m為10
        System.out.println("b.seeM():"+b.seeM());
        System.out.println("b.getM():"+b.getM());//20

        A a = b;                                  //把b符給a這樣創(chuàng)建對(duì)象的方法,還是先找B,B沒有再找A,找A的時(shí)候,就要注意:就近原則了
        //此刻,A類的m仍為0,B類的m仍為10
        System.out.println("...................................");
        System.out.println("a.seeM():"+a.seeM());
        System.out.println("a.getM():"+a.getM());
        System.out.println("...................................");

        a.m = -10;//A只能改自己的m,不能改B的m,所以
        //此刻,A類的m為-10,B類的仍m為10

        System.out.println("b.getM():"+b.getM());//20   b始終調(diào)用重寫后的getM()方法
        System.out.println("a.getM():"+a.getM());//b.getM()是20,后來把b賦給a,a也成了20     20
        //b調(diào)用的getM()方法是重寫之后的getM()方法,所以是10+10

        System.out.println("a.seeM():"+a.seeM());
        System.out.println("b.seeM():"+b.seeM());//此時(shí)不管是a的m還是b的m都是-10            -10
        System.out.println("a.m:"+a.m+"   b.m:"+b.m);
        System.out.println("a.getM():"+a.getM());
        //因?yàn)閎自己沒有seeM方法,所以b在使用seeM方法時(shí),是用的父類A的seeM方法,根據(jù)就近原則,b在調(diào)用seeM方法時(shí)是使用的A.m的-10
        //所以,b通過seeM()方法看到的是m是a的m
    }
}

在這里插入圖片描述

判斷成員變量的方法\技巧其實(shí)很簡單:

只需要:

確定當(dāng)前這個(gè)類 調(diào)用的成員方法 是先找誰?

=>如果先找父類,找就完事了

=>如果先在子類,子類找到了要用的方法,那就用;

如果沒找到,還要去父類里面去找要用到的方法,注意,這時(shí)就要使用就近原則

所以,關(guān)鍵有二:

一,確定先找誰?先找父類還是先在子類

eg:以上面的題為例:

B b = new B();//子類B, 子類 方法找完還 沒找到 時(shí),還要父類 里面找

A a = b;//注意這種 : 還是 子類B, 子類 方法找完還 沒找到 時(shí),還要父類 里面找

A a = new A();//這個(gè)時(shí)候,父類A,但 父類 方法找完還沒找到時(shí),不會(huì)再找 子類 了!

二,當(dāng)從子類B找到父類A時(shí),注意:要用到就近原則

到此這篇關(guān)于java多態(tài)中的就近原則介紹的文章就介紹到這了,更多相關(guān)java多態(tài)就近原則內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java使用poi-tl1.9.1生成Word文檔的技巧分享

    Java使用poi-tl1.9.1生成Word文檔的技巧分享

    本文將簡單介紹poi-tl的相關(guān)知識(shí),通過一個(gè)實(shí)際的案例實(shí)踐,充分介紹如何利用poi-tl進(jìn)行目標(biāo)文檔的生成,同時(shí)分享幾個(gè)不同的office版本如何進(jìn)行圖表生成的解決方案,需要的朋友可以參考下
    2023-09-09
  • Java編寫網(wǎng)絡(luò)聊天程序?qū)嶒?yàn)

    Java編寫網(wǎng)絡(luò)聊天程序?qū)嶒?yàn)

    這篇文章主要為大家詳細(xì)介紹了Java編寫網(wǎng)絡(luò)聊天程序?qū)嶒?yàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • ArrayList和JSONArray邊遍歷邊刪除到底該如何做

    ArrayList和JSONArray邊遍歷邊刪除到底該如何做

    這篇文章主要介紹了ArrayList和JSONArray邊遍歷邊刪除到底該如何做,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 詳解JavaWeb中的 Listener

    詳解JavaWeb中的 Listener

    JavaWeb里面的listener是通過觀察者設(shè)計(jì)模式進(jìn)行實(shí)現(xiàn)的。下面通過本文給大家詳細(xì)介紹javaweb中的listener,感興趣的朋友一起看看吧
    2016-09-09
  • sun?unsafe類功能及使用注意事項(xiàng)詳解

    sun?unsafe類功能及使用注意事項(xiàng)詳解

    這篇文章主要為大家介紹了unsafe類的功能及在使用中需要注意的事項(xiàng)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-01-01
  • Java兩種動(dòng)態(tài)代理JDK動(dòng)態(tài)代理和CGLIB動(dòng)態(tài)代理詳解

    Java兩種動(dòng)態(tài)代理JDK動(dòng)態(tài)代理和CGLIB動(dòng)態(tài)代理詳解

    這篇文章主要介紹了Java兩種動(dòng)態(tài)代理JDK動(dòng)態(tài)代理和CGLIB動(dòng)態(tài)代理詳解,代理模式是23種設(shè)計(jì)模式的一種,他是指一個(gè)對(duì)象A通過持有另一個(gè)對(duì)象B,可以具有B同樣的行為的模式,為了對(duì)外開放協(xié)議,B往往實(shí)現(xiàn)了一個(gè)接口,A也會(huì)去實(shí)現(xiàn)接口,需要的朋友可以參考下
    2023-11-11
  • 基于Java中字符串內(nèi)存位置詳解

    基于Java中字符串內(nèi)存位置詳解

    下面小編就為大家?guī)硪黄贘ava中字符串內(nèi)存位置詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • Eclipse添加xml文件提示及Hibernate配置學(xué)習(xí)

    Eclipse添加xml文件提示及Hibernate配置學(xué)習(xí)

    文件提示功能在開發(fā)過程中很實(shí)用的,本文實(shí)現(xiàn)了一個(gè)Eclipse添加xml文件提示,感興趣的朋友可以了解下啊,希望本文對(duì)你有所幫助
    2013-01-01
  • Java Scanner類及其方法使用圖解

    Java Scanner類及其方法使用圖解

    這篇文章主要介紹了Java Scanner類及其方法使用圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Java前后端的JSON傳輸方式(前后端JSON格式轉(zhuǎn)換)

    Java前后端的JSON傳輸方式(前后端JSON格式轉(zhuǎn)換)

    這篇文章主要介紹了Java前后端的JSON傳輸方式(前后端JSON格式轉(zhuǎn)換),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評(píng)論