亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

超級關鍵字用法

超級關鍵字用法

婷婷同學_ 2023-04-13 14:12:40
我是 java 的新手,我有幾個基本問題:靜態變量/方法使用什么內存?關鍵字“Super”是否僅在 Method overriding 的情況下才有意義?
查看完整描述

4 回答

?
UYOU

TA貢獻1878條經驗 獲得超4個贊

關鍵字super可用于:


聲明泛型類型:


public class Foo<E super Bar> { // <=====

    ...

}

從子類構造函數調用基類構造函數:


public class Bar {

    private int id;

    public Bar(int id) {

        this.id = id;

    }

}

public class Foo extends Bar {

    public Foo(int id) {

        super(id); // <=====

    }

}

當子類隱藏字段時,訪問基類中的字段:


public class Foo extends Bar {

    private int id;

    public int getFooId() {

        return this.id;

    }

    public int getBarId() {

        return super.id; // <=====

    }

}

從重寫的子類方法調用基類方法:


public class Bar {

    public void doGreatWork() {

        ...

    }

}

public class Foo extends Bar {

    @Override

    public void doGreatWork() {

        ...

        super.doGreatWork(); // <=====

        ...

    }

}

當子類重寫方法時引用基類方法


public class MultiBar extends Bar {

    public void doGreatWork() {

        list.stream().forEach(super::doGreatWork); // <=====

    }

}


查看完整回答
反對 回復 2023-04-13
?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

靜態變量/方法使用什么內存?


如果我們想訪問或調用該方法,我們不需要創建對象,只需在編寫方法時使用 static 關鍵字,如 ->> public static show()。


當我們使用 static 關鍵字時,該類將被調用并執行該方法。static 意味著我們不能改變值,我們也可以對變量使用 static 關鍵字,一旦我們使用 static 關鍵字就意味著我們不能經常改變值。例子:


public class static example

 {

  public static void main(String[] args)

 {

   xyz.i = 10;

   xyz.show();

  }

  }

  class xyz

 {

  static int i;

  public static void show()

  {

   System.out.println("Stackoverflow example by Me");

  }

  }


查看完整回答
反對 回復 2023-04-13
?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

關鍵字“Super”是否僅在 Method overriding 的情況下才有意義?


當我們要調用父類的方法時,子類的方法將在方法重載中執行,因為父類和子類將具有相同的方法名。這就是方法重載發生的原因。為了克服這個問題,我們使用 super 關鍵字來調用父類方法,即使父類和子類同名。我們可以輕松調用并執行父類方法


例子:


   class A {

    int i;

    

    public void show(){

        System.out.println("A");

    }

}


class B extends A {

    int i;

    

    public void show(){

        super.show()

        System.out.println("B");

    }

}


public class overriding example {

    public static void main(String[]args) {

        B obj1 = new B();

        obj1.show();

    }

}


查看完整回答
反對 回復 2023-04-13
?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

當父類和子類都有同名成員時訪問父類的數據成員,顯式調用父類的無參數參數化構造函數,當子類重寫該方法時訪問父類的方法。它可用于訪問父類的變量,調用父類的構造函數,并可用于方法覆蓋的情況。



查看完整回答
反對 回復 2023-04-13
  • 4 回答
  • 0 關注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號