Java中抽象不能new,但是為什麼抽象類可以寫一個有參的建構函式?有什麼作用?
- 2022-11-01
它的子類可以透過 super 進行呼叫建構函式。
不一定,但是一定要有一個建構函式,有參無參都可以。建構函式是物件的基本,沒有建構函式就沒有物件。若果在父類中中顯示的寫了有引數的建構函式,在子類繼承就必須寫一個建構函式來呼叫父類的建構函式
例子:
abstract class person { //定義一個抽象類,必須被繼承
person(int i) {
}
}
public class student extends person {
student() {
super(int i)://必須顯示的呼叫父類構造方法//super代表父類物件
}
}
如果父類中有沒有引數的建構函式,在子類中可以不顯示的寫父類的建構函式,java會自動呼叫沒有引數的建構函式
例子:
abstract class person { //定義一個抽象類,必須被繼承
person() { //此建構函式也可以不寫,java會預設新增一個沒有引數的建構函式
}
}
public class student extends person {
student() {
//super();//可以不寫,java會自己呼叫這個super()方法
}
}