1. 程式人生 > >java----super關鍵字和this關鍵字

java----super關鍵字和this關鍵字

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的區別