您好,登錄后才能下訂單哦!
這篇文章主要介紹了java關鍵字super和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(); } }
運行結果:
注: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(); } }
運行輸出:
區別總結:
this關鍵字:表示當前對象,也就是當前類對象,調用當前的類成員(變量和方法);
super關鍵字:表示當前類的父類,調用父類的成員(變量和方法);
this.的使用范圍要比super.的范圍更大。
this()與super()的簡單介紹
1、this()和super()都是使用只能使用于構造方法中,
2、this()調用本類的構造,如果括號內有形參,則是調用本類的與之相對應參的構造方法;super()調用父類指定的構造方法,
3、都只能寫在構造方法的第一句;
4、super()可以不寫,在不寫的時候會默認調用父類的無參構造,
5、this()與super()不能共存,兩者只能使用一個。
感謝你能夠認真閱讀完這篇文章,希望小編分享java關鍵字super和this有那些區別內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。