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

Java super關(guān)鍵字的用法詳解

 更新時(shí)間:2021年11月26日 10:21:29   作者:Emperor10  
在JAVA類中使用super來引用父類的成分,用this來引用當(dāng)前對(duì)象,如果一個(gè)類從另外一個(gè)類繼承,我們new這個(gè)子類的實(shí)例對(duì)象的時(shí)候,這個(gè)子類對(duì)象里面會(huì)有一個(gè)父類對(duì)象。怎么引用里面的父類對(duì)象呢?用super來引用,this指當(dāng)前對(duì)象的引用,super是當(dāng)前對(duì)象里面的父對(duì)象的引用

super關(guān)鍵字作用:在子類內(nèi)部調(diào)用父類對(duì)象

基礎(chǔ)語法:

1.在類的繼承中,當(dāng)子類繼承了父類, 在構(gòu)造子類的時(shí)候,一定要先幫助父類進(jìn)行構(gòu)造;

2. 調(diào)用super()必須寫在子類構(gòu)造方法的第一行,以保證在執(zhí)行任何動(dòng)作前,對(duì)象已經(jīng)完成了初始化,否則編譯不通過。每個(gè)子類構(gòu)造方法的第一條語句,都是隱含地調(diào)用super(),如果父類沒有這種形式的構(gòu)造函數(shù),那么在編譯的時(shí)候就會(huì)報(bào)錯(cuò)。

super關(guān)鍵字的三種用法:

1. super.成員變量

class Person{
    public String name; //成員變量
    public Person(String name) {
        this.name = name;
    }
}
class Student extends Person{
    String name = "student";
    public Student(String name) {
        super(name);
    }
    public void help() {
        //調(diào)用父類的成員屬性
        System.out.println(name); //student 直接使用,優(yōu)先使用局部變量
        System.out.println(super.name); // B 直接使用父類的成員變量
    }
}
public class s {
    public static void main(String[] args) {
        Student p = new Student("B");
        p.help();
    }
}

2. super.成員方法

class {
    public String name;
    public Person(String name) {
        this.name = name; //Test
    }
    public void help() {
        System.out.println(this.name+"Person");
    }
}
class Student extends Person{
    String name = "student";
    public Student(String name) {
        super(name); //Test
    }
    public void help() {
        //調(diào)用父類的成員方法
        super.help();
        System.out.println(this.name+"Student"); //Student this調(diào)用的式同類中的變量
    }
}
public class s {
    public static void main(String[] args) {
        Student p = new Student("Test");
        p.help();
    }
}
//Test Person
//student Student

3. super():調(diào)用父類中的構(gòu)造方法

3.1.1 隱式調(diào)用父類無參數(shù)構(gòu)造方法super()

如果父類是無參構(gòu)造,那么子類的構(gòu)造方法會(huì)默認(rèn)隱式的在第一行先調(diào)用父類無參數(shù)構(gòu)造方法,所以super()無需手動(dòng)進(jìn)行調(diào)用;

public class Father{
    int id;
    public Father(){
        System.out.println("父類構(gòu)造方法");
    }
}
public class Son extends Father{
    public Son(){
    	//super(); //系統(tǒng)會(huì)默認(rèn)生成,可有可無
        System.out.println("子類構(gòu)造方法");
    }
}
public class Test{
    public static void main(String[] args){
        Son s = new Son();
    }
}

//print:
//父類構(gòu)造方法
//子類構(gòu)造方法

3.1.2 顯式調(diào)用父類有參數(shù)構(gòu)造方法super(id)

如果父類是含參構(gòu)造,那么此時(shí)因?yàn)楦割愔袥]有無參數(shù)構(gòu)造方法,所以子類繼承父類時(shí)會(huì)報(bào)錯(cuò),這時(shí)就需要我們手動(dòng)的調(diào)用父類的有參構(gòu)造方法super(id);

public class Father{
    int id;
    public Father(int id){
        System.out.println("父類構(gòu)造方法");
    }
}
public class Son extends Father{
    public Son(int id){
    	super(id); //手動(dòng)調(diào)用父類的有參構(gòu)造方法
        System.out.println("子類構(gòu)造方法");
    }
}
public class Test{
    public static void main(String[] args){
        Son s = new Son(1);
    }
}

//print:
//父類構(gòu)造方法
//子類構(gòu)造方法

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

相關(guān)文章

  • 基于SpringBoot解決CORS跨域的問題(@CrossOrigin)

    基于SpringBoot解決CORS跨域的問題(@CrossOrigin)

    這篇文章主要介紹了基于SpringBoot解決CORS跨域的問題(@CrossOrigin),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • java equals函數(shù)用法詳解

    java equals函數(shù)用法詳解

    java 中equals函數(shù)的使用方法是廣大java愛好者所關(guān)心的一個(gè)話題,本文將詳細(xì)介紹其使用方法,需要了解的朋友可以參考下
    2012-11-11
  • Servlet和Filter之間的區(qū)別與聯(lián)系

    Servlet和Filter之間的區(qū)別與聯(lián)系

    這篇文章主要介紹了Servlet和Filter之間的區(qū)別與聯(lián)系的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • 解決spring 處理request.getInputStream()輸入流只能讀取一次問題

    解決spring 處理request.getInputStream()輸入流只能讀取一次問題

    這篇文章主要介紹了解決spring 處理request.getInputStream()輸入流只能讀取一次問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • ThreadLocal原理介紹及應(yīng)用場(chǎng)景

    ThreadLocal原理介紹及應(yīng)用場(chǎng)景

    本文詳細(xì)講解了ThreadLocal原理介紹及應(yīng)用場(chǎng)景,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • java 字符串相減(很簡(jiǎn)單的一個(gè)方法)

    java 字符串相減(很簡(jiǎn)單的一個(gè)方法)

    本篇文章是對(duì)java中關(guān)于字符串相減的一個(gè)簡(jiǎn)單的方法進(jìn)行了介紹,需要的朋友參考下
    2013-07-07
  • 詳解Java實(shí)踐之建造者模式

    詳解Java實(shí)踐之建造者模式

    建造者模式是將一個(gè)復(fù)雜的對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。它隱藏了復(fù)雜對(duì)象的創(chuàng)建過程,它把復(fù)雜對(duì)象的創(chuàng)建過程加以抽象,通過子類繼承或者重載的方式,動(dòng)態(tài)的創(chuàng)建具有復(fù)合屬性的對(duì)象
    2021-06-06
  • java實(shí)現(xiàn)郵件發(fā)送

    java實(shí)現(xiàn)郵件發(fā)送

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)郵件發(fā)送,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • SpringBoot快速整合SpringSecurity的詳細(xì)步驟(新手都會(huì)!)

    SpringBoot快速整合SpringSecurity的詳細(xì)步驟(新手都會(huì)!)

    日 Spring Security 是針對(duì)Spring項(xiàng)目的安全框架,也是Spring Boot底層安全模塊默認(rèn)的技術(shù)選型,他可以實(shí)現(xiàn)強(qiáng)大的Web安全控制,下面這篇文章主要給大家介紹了關(guān)于SpringBoot快速整合SpringSecurity的詳細(xì)步驟,需要的朋友可以參考下
    2023-03-03
  • 詳解java調(diào)用存儲(chǔ)過程并封裝成map

    詳解java調(diào)用存儲(chǔ)過程并封裝成map

    這篇文章主要介紹了詳解java調(diào)用存儲(chǔ)過程并封裝成map的相關(guān)資料,希望通過本文能幫助到大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-09-09

最新評(píng)論