this是自身的一個對象,代表對象本身,用法大致分為以下3類:
(推薦教學:java入門教學# )
1、普通直接引用目前物件本身
2、形參與成員名重名,用this來區分
3、引用建構方法,this(參數) ,應該為建構函式中的第一條語句,所呼叫的事1本類中另外一種形式的建構方法。
public class Demo{ String name; public void setName(String name) { this.name = name;// 前一个name是 本类的成员属性: name; // 后一个name是setName中的参数。 } public static void main(String[]args){ Demo m=new Demo(); m.setName("旺旺"); } }
super可以理解為是指向自己超(父)類別物件,這個超類別指的是離自己最近的一個父類別。也大致分為3種用法:
(影片教學推薦:java影片教學)
1、普通的直接引用,與this類似,只不過它是父類對象,可以透過它呼叫父類別成員。
2、子類別中的成員變數或方法與父類別中的成員變數或方法同名,可以使用super區分。
3、引用建構方法,super(參數):呼叫父類別中的某一個建構方法(應該是建構方法中的第一個語句)
public class Main extends teacher{ public static void main(String[] args) { //super(); } public Main(){ this(); super();//出错,this()与super()不能同时出现,且this(),super()都必须在第一行 } } class teacher { }
屬性的區別:this存取本類別中的屬性,如果本類別沒有此屬性則從父類別中繼續尋找。 super存取父類別中的屬性。
方法的差異:this存取本類別中的方法,如果本類別沒有此方法則從父類別中繼續尋找。 super存取父類別中的方法。
建構的區別:this呼叫本類別構造,必須放在建構方法的首行。 super呼叫父類別構造,必須放在子類別構造方法首行。
其他區別:this表示當前物件。 super不能表示當前物件。
以上是java中this與super有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!