父類有多個構(gòu)造函數(shù)如何繼承 為什么構(gòu)造函數(shù)不能是虛函數(shù)?
為什么構(gòu)造函數(shù)不能是虛函數(shù)?構(gòu)造函數(shù)不能聲明為虛函數(shù)的原因是:有所謂虛函數(shù)是多態(tài)情況下只執(zhí)行一個,而從無法繼承的概念來講,老是要先構(gòu)造父類對象,然后把才能是子類對象,假如構(gòu)造函數(shù)設(shè)為虛函數(shù),這樣的話等
為什么構(gòu)造函數(shù)不能是虛函數(shù)?
構(gòu)造函數(shù)不能聲明為虛函數(shù)的原因是:有所謂虛函數(shù)是多態(tài)情況下只執(zhí)行一個,而從無法繼承的概念來講,老是要先構(gòu)造父類對象,然后把才能是子類對象,假如構(gòu)造函數(shù)設(shè)為虛函數(shù),這樣的話等到你在構(gòu)造父類的構(gòu)造函數(shù)時就只好總是顯示的調(diào)用構(gòu)造,有一個原因那是是為防錯,很難想象如果沒有你在子類中再不小心寫回了個跟父類構(gòu)造函數(shù)一般的函數(shù),那么你的父類的構(gòu)造函數(shù)將被覆蓋,也即不能不能成功父類的構(gòu)造.都會出現(xiàn)錯誤.------子類可以繼承了父類的employee方法以后,其實這個可以在public中先添加新的方法和屬性(屬性象放到private也可以protect里面),這是不能繼承的基本都用法哦
一個父類只能被一個子類繼承?
一個父類可以不被多個子類可以繼承,比如:
classperson{}//父類
classworkerextendsperson{}//子類
classteacherextendsperson{}//子類
Java為什么不支持多繼承?
先講講多不能繼承和單不能繼承的區(qū)別。舉個例子,要是在武俠世界,多繼承那樣的話人們可以加入多個門派,學(xué)習(xí)多種武功,集百家之長,風(fēng)險就是是需要一一確定這些武功是否兼容性,好的例子是郭靖,壞的例子則是鳩摩智;單不能繼承的武俠世界,人們沒法一并加入一個門派,學(xué)習(xí)到這個門派的所有武功,缺點是外人很有可能認(rèn)為你只會本門武功,就算你練成了更很厲害的,他們也到底。
java從一開始就不接受多繼承,通常的原因我還是就是為了漢字拆分語言,避免多無法繼承給了的復(fù)雜性。而言多接口,多可以繼承機(jī)制中一個類這個可以不能繼承多個類,擁有所有父類的功能,是一種更強(qiáng)大無比的語言特性,可是相對于編程語言來講,要想利用多可以繼承,語法、代碼編譯等方面會非常奇怪,因此java語言甚至提出多接口都能夠滿足的條件需要,隨著時間,官方也在嘗試修補這個缺陷,java8中,接口引導(dǎo)出設(shè)置利用,這也向多繼承靠近了一步。不過java到最后是否會接受多不能繼承,還要時間來見證。