Java中的super和this是兩個重要的關鍵字,在面向對象編程中經常使用,本文將介紹它們的作用。
super表示父類,用于調用父類的構造方法、屬性和方法,可以解決父子類屬性或方法重名的問題。在子類中可以使用super關鍵字調用父類的構造方法,初始化父類中定義的屬性,例如:
public class Parent { public String name; public Parent(String name) { this.name = name; } } public class Child extends Parent { public String hobby; public Child(String name, String hobby) { super(name); this.hobby = hobby; } }
在子類Child的構造方法中,super(name)調用了父類Parent的構造方法,初始化父類中的屬性name,而this.hobby = hobby則是初始化子類中的屬性hobby。
this表示當前對象,用于訪問當前對象的屬性、調用當前對象的方法,也可以作為構造方法的調用。在類的構造方法中,可以使用this關鍵字來調用本類中的其他構造方法,例如:
public class Person { public int age; public String name; public Person(int age) { this.age = age; } public Person(int age, String name) { this(age); this.name = name; } }
在這個例子中,有兩個構造方法,一個是有一個int類型參數的,一個是有一個int類型參數和一個String類型參數的。在第二個構造方法中,使用this(age)調用了第一個構造方法,初始化了age屬性,然后再初始化了name屬性。
綜上,super和this是Java中兩個常用的關鍵字,能夠使子類調用父類的屬性和方法,也能調用本類中的其他屬性和方法,使代碼更靈活。