1. 程式人生 > >super關鍵字,super關鍵字和this關鍵字的區別

super關鍵字,super關鍵字和this關鍵字的區別

super關鍵字:
使用super可以呼叫父類的成分:父類的成員變數、父類的方法、父類的構造方法。

注意:使用super關鍵字和this關鍵字,均不能用在靜態方法中,只能用在普通方法(例項方法)中。

訪問屬性:
示例:

父類
  public class FatherClass{
      public int age=18;
    }

子類

public class ChildClass extends FatherClass{
      public int age = 10;
 
      public void test1(){
        System.out.println(this.age);//這裡將輸出 10,訪問的是自己(本類)的屬性
      }
      public void test2(){
        System.out.println(super.age);//這裡將輸出 18,訪問的是父類的屬性
      }
      public void test3(){
      System.out.println(age);//這裡將輸出 10;預設情況,如果父類存在age屬性,子類也存在age屬性,直接訪問age將是以 this.age 形勢訪問。但如果本類不存在age屬性,則將以 super.age 的形勢訪問。
      }
      
    }


訪問方法:
示例:

父類

  public class FatherClass{
      public void show(){
        System.out.println("Father類方法");
      }
    }

子類
  
public class ChildClass extends FatherClass{
      public void show(){
        System.out.println("Child類方法");
      }
      
      public void test1(){
        this.show();//這裡將輸出:Child類方法
      }
      public void test2(){
        super.show();//這裡將輸出:Father類方法
      }
      public void test3(){
      	show();//這裡將輸出:Child類方法;
        
      //預設情況,如果父類存在show()方法,子類也存在show()方法,直接訪問show()方法將是以 this.show() 形勢訪問。但如果本類不存在show()方法,則將以 super.show() 的形勢訪問。
      }
      
    }

this和super的區別:
super 是使用在繼承關係中,主要是用於子類呼叫父類的構造方法和普通方法
構造方法呼叫方式:super(引數列表);
普通方法呼叫方式:super.方法名稱

this 只能在本類中使用 this(引數列表)或者this()



相關推薦

super關鍵字super關鍵字this關鍵字區別

super關鍵字: 使用super可以呼叫父類的成分:父類的成員變數、父類的方法、父類的構造方法。 注意:使用super關鍵字和this關鍵字,均不能用在靜態方法中,只能用在普通方法(例項方法)中。訪

java----super關鍵字this關鍵字

super 1.呼叫父類的構造方法 super(引數列表) 子類中呼叫父類無參構造時super()可寫可不寫 子類呼叫父類有參構造時,super(引數列表); 必須要寫,告訴編譯器呼叫的是哪個父類的有參構造。 super呼叫父類普通方法 super 方法名(引

java的superthis關鍵字用法總結

------super關鍵字------                 super用途:在子類中訪問超類“被隱藏的成員變數(無論是否靜態)和靜態方法”以及“被重寫的例項方法”。這裡的超類必須是“直接超類”,即子類之上最近的超類。         super的用法:         ①在子類構造方法

this關鍵字static關鍵字super關鍵字的使用。

                一 this關鍵字的使用。                            b、把這個類自己的例項化物件當作引數進行傳遞時,可以使用this。    c、內部類中,呼叫外部類的方法或變數,       可使用:類名.this.(變數或

Java中super關鍵字this關鍵字的比較

1、基本概念的比較 this關鍵字用於代表本類的物件; super關鍵字用於代表父類的物件; 2、使用方式的比較 使用this. 的方式可以訪問本類的成員變數和成員方法; 使用super. 的

super關鍵字this區別

1)super(引數):呼叫基類中的某一個建構函式(應該為建構函式中的第一條語句) 2)this(引數):呼叫本類中另一種形成的建構函式(應該為建構函式中的第一條語句) 3)super: 它引用當前物件的直接父類中的成員(用來訪問直接父類中被隱藏的父類

Java語言基礎20--方法過載this關鍵字

一、方法過載 方法過載的意思是:一個類中可以有多個方法具有相同的名字,但這些方法的引數必須不同,即或者是引數的個數不同,或者是引數的型別不同。 class A {   float add(int a,int b) {     

TypeScript 函數-Lambads this 關鍵字的使用

cti clas mda brush let rand highlight light type let people = { name:["a","b","c","d"], /* getName:function(){ return function(

superthis區別

參考部落格:https://www.cnblogs.com/hasse/p/5023392.html                   http://blog.csdn.net/zuoyang1990/article/details/53471494 this this

html、val、attr、prop區別this.value$(this).val()區別以及return用法

生態 所有 select 批量 控制 添加屬性 ext his 區別 html(): html() 方法返回或設置被選元素的內容 (inner HTML)。 當使用該方法讀取多個值時,它會返回第一個匹配元素的內容。 當使用該方法設置一個值時,它會覆蓋所有匹配元素的內容。 取

this $(this) 的區別

.com .cn style alt font 區別 cnblogs alert 分享 沒事就alert一下 this 和 $(this) 的區別

Thread.currentThread().getName() this.getName()區別詳解

區別 pac 修改 face 通過 同名 exce splay 情況 Thread.currentThread().getName() 和 this.getName()區別詳解<<Java多線程編程核心技術>>這本書裏說到了這個: Thread.c

C#basethis區別

沒有 .net images ins name lan .cn 基礎上 tps 轉自(https://www.cnblogs.com/reommmm/archive/2009/03/23/1419573.html) new關鍵字引起了大家的不少關註,尤其感謝Anders

jquery裏$(this)this區別在哪

addclass 調用 cti OS dom節點 att query lis attr 下面兩段代碼在jquery的官網見到的,何時用$(this),又何時用this呢? $(document).ready(function() { $("#orderedlist

(轉)mysql數據庫中存儲數字字段時選擇intvarchar的區別

排序 mysql數據庫 SQ AR 設計 規則 使用 char 字段 從字段類型的執行效率上,int最高,varchar最低。狀態類型字段,使用char或者varchar是不可取的,int類型更容易建立索引和進行檢索,畢竟數字類型是數據庫檢索的基礎,char類型的畢竟需要經

內存寄存器cache的區別與聯系

拷貝 技巧 line 一段時間 arc 但是 nbsp 貴的 硬盤 1. 寄存器是中央處理器內的組成部份。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數據和位址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序計數器(PC)。在中央處理器的算術及

反射中Class.forName classloader 的區別

https://blog.csdn.net/qq_27093465/article/details/52262340 java中class.forName()和classLoader都可用來對類進行載入。 類載入過程為: 載入-->連結-->初始化; 載入:通過累的全限定名獲取二進位制位

python下類物件例項物件區別類變數例項變數區別

Y14 一、類物件和例項物件 簡短理論: 類物件是將具有相似屬性和方法的物件總結抽象為類物件,可以定義相似的一些屬性和方法,不同的例項物件去引用類物件的屬性和方法,能減少程式碼的重複率。 例項物件又稱例項化物件,不是抽象而是一類物件中具體的一例物件。 比

Java基礎之String 是否包含該字串使用 contains indexOf 的區別

判斷該字串是否包含某個字串: 1、一般會用到String的contains,如果包含則返回true,否則返回false。 @Test public void contains_Test() { String one = "a"; String two = "abc"; System.o

微控制器引腳與埠引腳GPIO的區別

一,引腳與埠: 1.引腳就是晶片外接的引腳啊,一個晶片至少有VCC,GND引腳,象51微控制器還有IO引腳,串列埠引腳等,引腳就是物理外接的一個個管腿啊。2.埠是微控制器內部(CPU單元)和外部IO的介面組,比如說PA埠,有8個引腳,PA0~PA7。埠在IO空間對映有暫存器,這個暫存器反映當前埠