1. 程式人生 > >java中繼承的理解,super關鍵字,方法的重寫和過載以及注意事項理解

java中繼承的理解,super關鍵字,方法的重寫和過載以及注意事項理解

一、類的繼承理解

在java中類的繼承是指:在一個現有類的基礎之上去構建一個新的類,構建出來的新的類被稱為子類,現有類是父類,子類會自動擁有父類所有可繼承的屬性和方法。繼承類是現有類的更具體一些,繼承類可能只擁有一部分父類的屬性和方法。

如圖,這就表示了繼承類是父類的一種更具體形式。

二、繼承類的使用

1、需要關鍵字extends如圖繼承了Employee類

一旦繼承,父類的所有可繼承的變數和方法子類都自動繼承。也就是說你可以用子類的物件呼叫父類的成員,還有子類的成員和方法。也就是說子類可以呼叫自己的東西,也可以呼叫父類的東西。

三、繼承的好處

1、繼承的出現提高了程式碼的複用性,t提高了軟體開發效率。比如:父類有的變數不用寫了。 

2、繼承的出現讓類與類之間產生了關係,提供了多型的前提,比如:類與類之間有了繼承關係。

那麼繼承跟多型有什麼關係?

多型:是一個事物擁有不同的形態,在java中就是一個類有不同的具體類。比如:公司裡的所有員工統稱為員工,員工又分為開發員工,研發員工,維護員工。分出的這些不同功能的員工就是多型。

四、繼承的注意事項

1、java中只允許單繼承,即:一個類只能有一個父類。因為多繼承有安全問題如圖:

會造成c物件呼叫的方法,分不清呼叫誰的方法。

2、允許多個類繼承一個類。

3、允許多次繼承。比如:A繼承B,B繼承C。如圖:

上面是多層繼承。層次越多,擁有的功能也就越多。聯絡多繼承,那麼c物件呼叫方法時,呼叫的是B的方法。如下圖:

此時C.呼叫的就是B類的方法,可以用就近原則來解釋。

4、java中的父類和子類是一個相對的概念。因為一個類可以是一個類的父類,也可以是另一個類的子類。

五、繼承體系和抽象

我認為繼承形成了抽象關係。所謂的父類就是集成了各個具體類的共性東西。最高的父類,就是最共性的東西。子類不但具有共性的東西,還具有自己的特性東西。子類的共性抽取,形成父類。最後抽取出來的說不清的類,就成了抽象類。抽象類即:有這個功能,但是他不是一個物件,無法形成物件。比如,人,貓,魚抽象成動物,動物是個物體嗎?動物不是物,是個名詞,不是個實體,無法作為物件。故就是一個抽象類。

六、繼承後子類和父類的成員變數的變化。

1、子類的物件,呼叫成員變數,子類自己有,使用自己的,子類沒有,呼叫父類的。其實還是就近原則。

七、super關鍵字的使用。

1、super關鍵字的需要。

如果有一個父類,一個子類。父類和子類都對屬性int age 賦了值,當main方法呼叫了子類物件,並要列印子類age時,系統會根據就近原則打印出子類賦給age的值。但是問題來了,如果要列印父類賦給age的值時如何處理?

super關鍵字:用來表示當前物件中包含父類物件空間的引用。 也就是說super代表的是當前類的父類的物件。

2、注意:

子類又叫派生類,父類又叫基類或者超類。

this.是呼叫本類成員。

super.是呼叫自己父類成員。

八、重寫和過載問題

1、過載:(overload)。過載是一個類當中方法名相同,但是方法引數不同。

2、重寫(覆蓋):(override)重寫是父類和子類當中出現了一樣的方法名時方法名,修飾符,引數列表都相同(方法主體不同)被稱為子類重寫父類的方法。

前者是同一個類的事情,後者是子父類的事情。方法的重寫具有非常重要的擴充套件功能。

九、java方法中的重寫問題注意事項:

1、子類重寫父類方法,必須保證子類方法的許可權大於或等於父類方法許可權。

四大許可權:public(公有)>protected(受保護)> default(預設許可權)> private(私有的)

2、方法的名,返回型別,引數列表都要一模一樣