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

Java中super與this關(guān)鍵字的用途及區(qū)別詳解

 更新時(shí)間:2025年04月28日 08:31:36   作者:暮乘白帝過(guò)重山  
這篇文章主要介紹了Java中super與this關(guān)鍵字的用途及區(qū)別的相關(guān)資料,super和this是Java中用于引用父類和當(dāng)前對(duì)象的特殊關(guān)鍵字,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

super關(guān)鍵字

super是Java中的一個(gè)引用變量,用于引用直接父類對(duì)象。

主要用途:

  • 訪問(wèn)父類的成員變量:當(dāng)子類和父類有同名變量時(shí)

    super.variableName;
  • 調(diào)用父類的方法:特別是當(dāng)子類重寫了父類方法時(shí)

    super.methodName();
  • 調(diào)用父類的構(gòu)造器:必須在子類構(gòu)造器的第一行

    super();
    // 或
    super(parameters);

this關(guān)鍵字

this是Java中的一個(gè)引用變量,用于引用當(dāng)前對(duì)象。

主要用途:

  • 引用當(dāng)前對(duì)象的成員變量:解決局部變量與成員變量同名的問(wèn)題

    this.variableName = variableName;
  • 調(diào)用當(dāng)前類的方法:明確調(diào)用當(dāng)前類的方法

    this.methodName();
  • 調(diào)用當(dāng)前類的構(gòu)造器:必須在構(gòu)造器的第一行

    this();
    // 或
    this(parameters);
  • 作為參數(shù)傳遞:將當(dāng)前對(duì)象作為參數(shù)傳遞

    method(this);

super與this的區(qū)別

特性superthis
引用對(duì)象父類對(duì)象當(dāng)前對(duì)象
使用場(chǎng)景主要用于繼承關(guān)系中可用于任何類中
調(diào)用構(gòu)造器必須位于子類構(gòu)造器第一行必須位于構(gòu)造器第一行
訪問(wèn)權(quán)限只能訪問(wèn)父類可見的成員可以訪問(wèn)當(dāng)前類所有成員
鏈?zhǔn)秸{(diào)用不能鏈?zhǔn)秸{(diào)用(super.super非法)可以鏈?zhǔn)秸{(diào)用(this.this非法)
靜態(tài)上下文不能在靜態(tài)方法/塊中使用不能在靜態(tài)方法/塊中使用

代碼示例

class Parent {
    String name = "Parent";
    
    void display() {
        System.out.println("Parent's display");
    }
}

class Child extends Parent {
    String name = "Child";
    
    Child() {
        this("Default"); // 調(diào)用本類的另一個(gè)構(gòu)造器
    }
    
    Child(String name) {
        super(); // 調(diào)用父類構(gòu)造器
        this.name = name;
    }
    
    void display() {
        System.out.println("Child's display");
    }
    
    void show() {
        System.out.println(super.name); // 訪問(wèn)父類的name
        System.out.println(this.name);  // 訪問(wèn)本類的name
        super.display();               // 調(diào)用父類的display
        this.display();                 // 調(diào)用本類的display
    }
}

public class Main {
    public static void main(String[] args) {
        Child child = new Child("Test");
        child.show();
    }
}

輸出結(jié)果:

Parent
Test
Parent's display
Child's display

總結(jié)

  • 使用super主要是為了在子類中明確訪問(wèn)父類的成員,避免與子類成員混淆

  • 使用this主要是為了在類內(nèi)部明確訪問(wèn)當(dāng)前對(duì)象的成員,避免與局部變量混淆

  • 兩者都可以用于構(gòu)造器調(diào)用,但都必須位于構(gòu)造器的第一行

  • 在靜態(tài)上下文中,兩者都不能使用

到此這篇關(guān)于Java中super與this關(guān)鍵字的用途及區(qū)別詳解的文章就介紹到這了,更多相關(guān)Java中super與this關(guān)鍵字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Idea Jrebel 報(bào)錯(cuò):Cannot reactivate,offline seat in use

    Idea Jrebel 報(bào)錯(cuò):Cannot reactivate,offline 

    本文主要介紹了Idea Jrebel 報(bào)錯(cuò):Cannot reactivate,offline seat in use,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • idea創(chuàng)建springboot項(xiàng)目(版本只能選擇17和21)的解決方法

    idea創(chuàng)建springboot項(xiàng)目(版本只能選擇17和21)的解決方法

    idea2023創(chuàng)建spring boot項(xiàng)目時(shí),java版本無(wú)法選擇11,本文主要介紹了idea創(chuàng)建springboot項(xiàng)目(版本只能選擇17和21),下面就來(lái)介紹一下解決方法,感興趣的可以了解一下
    2024-01-01
  • 深入理解Java 類加載全過(guò)程

    深入理解Java 類加載全過(guò)程

    這篇文章主要介紹了深入理解Java 類加載全過(guò)程的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Java值傳遞和引用傳遞詳解

    Java值傳遞和引用傳遞詳解

    這篇文章主要為大家詳細(xì)介紹了Java值傳遞和引用傳遞,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • java制作簡(jiǎn)單的坦克大戰(zhàn)

    java制作簡(jiǎn)單的坦克大戰(zhàn)

    坦克大戰(zhàn)是我們小時(shí)候玩紅白機(jī)時(shí)代的經(jīng)典游戲,看到有不少小伙伴都使用各種語(yǔ)言實(shí)現(xiàn)了一下,手癢癢,也使用java做的一個(gè)比較簡(jiǎn)單的坦克大戰(zhàn),主要面向于學(xué)過(guò)Java的人群,與學(xué)了一段時(shí)間的人,有利于面向?qū)ο笏枷氲奶岣?,推薦給大家。
    2015-03-03
  • 解決idea update project 更新選項(xiàng)消失的問(wèn)題

    解決idea update project 更新選項(xiàng)消失的問(wèn)題

    這篇文章主要介紹了解決idea update project 更新選項(xiàng)消失的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • 教你Spring Cloud保證各個(gè)微服務(wù)之間調(diào)用安全性

    教你Spring Cloud保證各個(gè)微服務(wù)之間調(diào)用安全性

    在微服務(wù)的架構(gòu)下,系統(tǒng)會(huì)根據(jù)業(yè)務(wù)拆分為多個(gè)服務(wù),各自負(fù)責(zé)單一的職責(zé),在這樣的架構(gòu)下,我們需要確保各api的安全性,今天通過(guò)本文給大家分享Spring Cloud中如何保證各個(gè)微服務(wù)之間調(diào)用的安全性,需要的朋友參考下吧
    2021-08-08
  • 23種設(shè)計(jì)模式(12)java模版方法模式

    23種設(shè)計(jì)模式(12)java模版方法模式

    這篇文章主要為大家詳細(xì)介紹了23種設(shè)計(jì)模式之java模版方法模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • java調(diào)用webService接口的代碼實(shí)現(xiàn)

    java調(diào)用webService接口的代碼實(shí)現(xiàn)

    本文主要介紹了java調(diào)用webService接口的代碼實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Java基礎(chǔ)之內(nèi)部類與代理知識(shí)總結(jié)

    Java基礎(chǔ)之內(nèi)部類與代理知識(shí)總結(jié)

    今天帶大家復(fù)習(xí)Java的基礎(chǔ)知識(shí),文中有非常詳細(xì)的介紹及圖文示例,對(duì)正在學(xué)習(xí)Java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06

最新評(píng)論