1. 程式人生 > >【面向物件】Java子類的建構函式

【面向物件】Java子類的建構函式

父類:

package extend;

/**
 * Created by guan on 4/9/17.
 */
public class Parent {
    public String name;
    private String passwd;
    public Parent(String name,String passwd)
    {
        this.name=name;
        this.passwd=passwd;
    }

    @Override
    public String toString() {
        String s="name: "
+name+ "\tpasswd: "+passwd; return s; } }

子類:

package extend;

/**
 * Created by guan on 4/9/17.
 */
public class Child extends Parent {

    public Child()
    {
        super("Child", "Child Passwd");
    }

    public Child(String name, String passwd) {
        super(name, passwd);
    }

    //========================================
/** * main函式,程式入口 * @param args */ public static void main(String[] args) { System.out.println(new Child().toString()); System.out.println(new Child("Guan","123456")); } //======================================== }

結果

name: Child     passwd: Child Passwd
name: Guan passwd: 123456


子類繼承父類中,子類會在建構函式中呼叫父類的建構函式:
1. 如果沒有顯式定義,系統會自動新增super()來呼叫父類建構函式。
- super()呼叫的是父類的無參建構函式。
- 如果父類 沒有無參建構函式,則編譯器報錯。
2. 如果已經顯式定義 ,則會根據定義的super(* ,* ,* , … )來呼叫對應的父類的建構函式.