java子類繼承父類實(shí)例 Java為什么不能繼承多個(gè)父類?
Java為什么不能繼承多個(gè)父類?Java支持單個(gè)繼承和多個(gè)實(shí)現(xiàn)。如果支持多重繼承,則意味著一個(gè)子類可以同時(shí)從多個(gè)父類繼承,因此它具有多個(gè)父類的特性。如果子類繼承的父類具有相同的成員變量,則子類在引用該
Java為什么不能繼承多個(gè)父類?
Java支持單個(gè)繼承和多個(gè)實(shí)現(xiàn)。
如果支持多重繼承,則意味著一個(gè)子類可以同時(shí)從多個(gè)父類繼承,因此它具有多個(gè)父類的特性。如果子類繼承的父類具有相同的成員變量,則子類在引用該變量時(shí)將無法確定要使用哪個(gè)父類的成員變量。因此,多重繼承是有爭(zhēng)議的,不能多重繼承。
一般來說,一個(gè)人不能有一個(gè)以上的父親或母親。
JAVA子類繼承父類,然后用父類去new這個(gè)子類的對(duì)象,這樣做的意義在哪?
例如,如果父類的構(gòu)造函數(shù)帶參數(shù),則子類的構(gòu)造函數(shù)中的第一句話是super(…)。注意:調(diào)用子類構(gòu)造函數(shù)時(shí),首先調(diào)用父類構(gòu)造函數(shù),然后調(diào)用子類構(gòu)造函數(shù)。如果要調(diào)用父類而不是子類的成員,可以:super。不創(chuàng)建父類的實(shí)例。如果你能創(chuàng)建一個(gè)父類的實(shí)例,我可以舉一個(gè)反例來說明這是錯(cuò)誤的:當(dāng)父類是抽象類而子類不是抽象類時(shí),子類在調(diào)用構(gòu)造函數(shù)時(shí)也會(huì)調(diào)用父類構(gòu)造函數(shù),創(chuàng)建子類和父類的兩個(gè)實(shí)例。但是,抽象類不能實(shí)例化。原來的假設(shè)是錯(cuò)誤的。因此,父類不會(huì)被創(chuàng)建為實(shí)例。理論理解:當(dāng)用構(gòu)造函數(shù)添加new時(shí),會(huì)創(chuàng)建一個(gè)對(duì)象(實(shí)例)。調(diào)用子類構(gòu)造函數(shù)時(shí),調(diào)用父類構(gòu)造函數(shù)是初始化子類從父類繼承的部分。此過程不對(duì)父類使用new,因此不會(huì)為父類創(chuàng)建對(duì)象(實(shí)例)。