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

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

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

直接上題:

在這里插入圖片描述

題目補充:

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的時候,就要注意:就近原則了
        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)建對象的方法,還是先找B,B沒有再找A,找A的時候,就要注意:就近原則了
        //此刻,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始終調用重寫后的getM()方法
        System.out.println("a.getM():"+a.getM());//b.getM()是20,后來把b賦給a,a也成了20     20
        //b調用的getM()方法是重寫之后的getM()方法,所以是10+10

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

在這里插入圖片描述

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

只需要:

確定當前這個類 調用的成員方法 是先找誰?

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

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

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

所以,關鍵有二:

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

eg:以上面的題為例:

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

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

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

二,當從子類B找到父類A時,注意:要用到就近原則

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

相關文章

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

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

    本文將簡單介紹poi-tl的相關知識,通過一個實際的案例實踐,充分介紹如何利用poi-tl進行目標文檔的生成,同時分享幾個不同的office版本如何進行圖表生成的解決方案,需要的朋友可以參考下
    2023-09-09
  • Java編寫網絡聊天程序實驗

    Java編寫網絡聊天程序實驗

    這篇文章主要為大家詳細介紹了Java編寫網絡聊天程序實驗,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • ArrayList和JSONArray邊遍歷邊刪除到底該如何做

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

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

    詳解JavaWeb中的 Listener

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

    sun?unsafe類功能及使用注意事項詳解

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

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

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

    基于Java中字符串內存位置詳解

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

    Eclipse添加xml文件提示及Hibernate配置學習

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

    Java Scanner類及其方法使用圖解

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

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

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

最新評論