java----super關鍵字和this關鍵字
阿新 • • 發佈:2018-12-16
super
1.呼叫父類的構造方法 super(引數列表)
子類中呼叫父類無參構造時super()可寫可不寫
子類呼叫父類有參構造時,super(引數列表);
必須要寫,告訴編譯器呼叫的是哪個父類的有參構造。
super呼叫父類普通方法
super 方法名(引數列表)呼叫被覆寫的方法
class person{ public void print(){//父類普通方法 System.out.println("hello"); } } class student extends person{ public void print(){//覆寫print()方法 super.print(); //呼叫父類方法 System.out.println("nihaoma");} } public class hehe{ public static void main(String[]args){ student stu=new student(); stu.print(); } }
2.呼叫父類屬性
class Person{ public String info = "爸爸!"; } class Student extends Person{ public String info = "兒子!" ; public void print(){ //不找本類中的屬性 System.out.println(super.info); System.out.println(this.info); } } public class hehe{ public static void main(String[] args) { new Student().print(); } }
this
(1) this呼叫本類的屬性
This.屬性名 明確表示呼叫類中同名屬性
規範:在類的普通方法中訪問本類屬性,一定要加this關鍵字
(2) this呼叫本類方法
呼叫普通方法 this.方法名稱(引數)
呼叫構造方法 this(引數):
A. this呼叫其他構造方法必須放在首行呼叫----編譯器語法錯誤
B. this呼叫構造方法不允許成環----編譯器語法錯誤
(3) this表示當前物件
在有參構造中,先呼叫無參構造,this( )呼叫本類物件。
***super與this在構造方法中不能同時存在,即子類不存在構造方法的互相呼叫。
super和this的區別