【面向物件】Java子類的建構函式
阿新 • • 發佈:2018-11-26
父類:
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(* ,* ,* , … )來呼叫對應的父類的建構函式.