首頁 >Java >java教程 >java關鍵字super和this是什麼?有什麼區別?

java關鍵字super和this是什麼?有什麼區別?

青灯夜游
青灯夜游原創
2018-11-21 14:08:475739瀏覽

本篇文章帶給大家的內容是介紹java關鍵字super和this是什麼?有什麼區別? ,讓大家了解關鍵字super和this的作用,關鍵字super和this的差別,以及簡單介紹一下superL()和this()。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有幫助。

關鍵字super和this是什麼?有什麼區別?

this關鍵字

this是java中的保留關鍵字,即我們不能將其用作識別符。

this:代表當前對象,它允許存取當前類別的方法/屬性(包括其自己的私有方法/屬性)。

簡單來說:能存取操作目前類別裡面的所有屬性及方法以及父類別繼承而來能被存取修飾符允許的屬性和方法。

範例:

class RR { 
	int a = 10; 
	static int b = 20; 

	void GFG() { 
		this.a = 100; 
		this.b = 600; 
		System.out.println(a); 
		System.out.println(b); 
	} 

	public static void main(String[] args) { 
		new RR().GFG(); 
	} 
}

執行結果:

java關鍵字super和this是什麼?有什麼區別?

#註:this只能在類別的非靜態方法中使用,靜態方法和靜態的程式碼區塊中絕對不能出現this。

super關鍵字

super是java中的保留關鍵字,即我們不能將其用作識別符。

super代表目前物件類別的父類別物件部分,用來引用被封鎖的成員變數和成員方法。允許存取公共(受保護)的方法或屬性,無法存取父級的私有方法或屬性。

super不能操作到本類別的屬性和方法;能操作到父類別的能被父類別存取修飾符允許的屬性和方法,只有當本類別中呼叫被重寫前的效果時使用super.的方法。

使用super的目的是存取直接父類別中被封鎖的成員,注意是直接父類別(就是類別之上最近的超類別)。

範例:

class Parent { 
	// instance variable 
	int a = 10; 

	// static variable 
	static int b = 20; 
} 
class Base extends Parent { 
	void rr() { 
		System.out.println(super.a); 
		System.out.println(super.b); 
	} 

	public static void main(String[] args) { 
		new Base().rr(); 
	} 
}

運行輸出:

java關鍵字super和this是什麼?有什麼區別?

區別總結:

this關鍵字:表示當前對象,也就是當前類別對象,呼叫目前的類別成員(變數和方法);

super關鍵字:表示目前類別的父類,呼叫父類別的成員(變數和方法) ;

this.的使用範圍要比super.的範圍更大。

this()與super()的簡單介紹

#1、this()和super()都是使用只能使用於在建構方法中,

2、this()呼叫本類別的構造,如果括號內有形參,則是呼叫本類別的與之相對應參的建構方法;super()呼叫父類別指定的建構方法,

3、都只能寫在建構方法的第一句;

4、super()可以不寫,在不寫的時候會預設呼叫父類別的無參構造,

 5、this()與super()不能共存,兩者只能使用一個。

以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多相關影片教學推薦:java教學

以上是java關鍵字super和this是什麼?有什麼區別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn