構造函數中的super和this的使用


super用於調用父類構造函數的部分,其必須出現在構造函數的第一行。super在調用時第一件事就是去執行父類構造函數的部分,所執行的父類構造函數與super()括號中的參數相對應。

this用於在一個構造函數中調用同一個類另一個構造函數,其也必須是第一行語句。

super和this不能同時出現在一個構造函數中,其兩個在使用時必須出現在構造函數的第一行語句,其區別為super調用父類構造函數,this調用自身類的構造函數。

為便於理解,可以將this理解為自己,也就是這個類本身,因此調用this是調用自己類的構造函數。

public abstract class Animal {
    private String name;
    public String getName() {
        return name;
    }
    public Animal() {
        
    }
    public Animal(String theName) {
        name=theName;
    }
    public Animal(String x,String getname) {
        
    }

}
public class Hippo extends Animal{
    String name;
    public Hippo() {    //編寫此構造函數父類需也有無參構造函數
        String test;
    }
    public Hippo(String name) {
        super(name);    //使用super方法將name傳給父類Animal
        System.out.println("big");
    }
    
    public Hippo(String x,String name) {
        this(name);        //this為調用只有一個string參數的構造函數,即調用上面的構造函數輸出big
        //super(name);    //super和this只能調用一個
        System.out.println(x);
        
    }

}

輸出結果為

big
Buffy


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM