都是用來初始化類
只是抽象撫的構造方法不能直接調用 因為抽象類不能實現實例
但是壹旦壹個普通類繼承了抽象類 便也可以在構造函數中調用其抽象類的構造函數
也可以使用其方法
可以這麽理解吧 抽象類就是壹個不能實例化的不同類
不過如果方法加了abstract那麽就必須在子類裏面重寫了
問題二:為什麽抽象類有構造方法,接口卻沒有構造方法 抽象類設計出來是用來實現多態(動態綁定),而且抽象類中可以有函數的具體實現。
而接口不提供任何具體實現,它被設計出來用來允許妳通過創建壹個能夠被向上轉型為不止壹種基類型的類,來實現壹種C++多重繼承(multiple inheritance 的變種。
問題三:java中,抽象類可以有構造方法嗎 抽象類可以有構造方法,只是不能直接創建抽象類的實例對象而已。
問題四:新手~~java抽象類構造方法問題 Cat myCat = new Cat(myCat); 妳右邊作為構造函數傳入的myCat是個啥?妳的程序裏要求的是String類型,是不是考慮改成Cat myCat = new Cat(myCat);
問題五:java中,抽象類可以有構造方法嗎 可以有構造方法。構造方法的作用有兩個,壹個是初始化變量,另外壹個是實例化對象,抽象類不能實例化,還可以做另外壹個作用。
問題六:壹個抽象類中有構造方法有什麽用 可以被子類的構造方法調用,否則子類為抽象父類加載私有屬性會很麻煩
問題七:抽象類中有構造函數嗎?抽象類中有構造函數嗎?抽象類中有構造函數嗎 建議妳看壹下百度文庫中的解密高考抽象函數文章
wenku.baidu/..._t1y4_
問題八:java的抽象類中父類壹定要含無參構造函數嗎 不壹定,但是壹定要有壹個構造函數,有參無參都可以
構造函數是對象的基本,沒有構造函數就沒有對象。
若果在父類中(這裏就是妳的抽象類)中顯示的寫了有參數的構造函數,在子類繼承就必須寫壹個構造函數來調用父類的構造函數
例子: 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()方法
}
}
問題九:抽象類中定義構造方法後,繼承它的子類中也必須要寫出構造方法嗎 1.抽象類也是類,只不過本身不能實例化,要通過子類實例化。
2.是類就有構造方法,如果我們沒有給出構造方法,系統將自動提供壹個無參構造方法,如果我們給出了構造方法,系統將不會提供。
3.子類中所有的構造方法默認都會訪問父類中空參構造方法--->也就是說,子類new對象的時候,先去父類中逛了互圈,完成了父類的初始化(父類初始化值存在子類new對象開辟堆內存的某塊地方)(再說白點,每壹個構造方法的第壹條語句默認是super(),有參也是)
4.那麽問題來了,要是父類沒有無參構造呢?
不會有人認為父類沒有構造方法啦?。。。
系統會默認加的(前面有提到),這裏是指父類手動寫了有參構造,子類繼承要加super(值)或是this(值),從而子類繼承的時候就要寫出構造方法,再加上this(值)或是super(值)
5.繼承註意:子類不能繼承父類的構造方法,但是可以通過super關鍵字去訪問父類
懵逼了吧,話說從學習java到放棄java