全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)常見(jiàn)問(wèn)題正文

Java培訓(xùn):在java中類(lèi)的繼承原則有哪些?

更新時(shí)間:2022-11-02 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  在Java中,類(lèi)的繼承是指在一個(gè)現(xiàn)有類(lèi)的基礎(chǔ)上去構(gòu)建一個(gè)新的類(lèi),構(gòu)建出來(lái)的新類(lèi)稱(chēng)為子類(lèi),現(xiàn)有類(lèi)稱(chēng)為父類(lèi)。子類(lèi)繼承父類(lèi)的屬性和方法,使得子類(lèi)對(duì)象(實(shí)例)具有父類(lèi)的特征和行為。

  在類(lèi)的繼承中,需要注意一些問(wèn)題,具體如下。

  (1)在Java中,類(lèi)只支持單繼承,不允許多重繼承。也就是說(shuō),一個(gè)類(lèi)只能有一個(gè)直接父類(lèi),例如下面這種情況是不合法的。

class A{}
class B{}
class C extends A,B{}   // C類(lèi)不可以同時(shí)繼承A類(lèi)和B類(lèi)

  (2)多個(gè)類(lèi)可以繼承一個(gè)父類(lèi),例如下面這種情況是允許的。

class A{}
class B extends A{}
class C extends A{}    // B類(lèi)和C類(lèi)都可以繼承A類(lèi)

  (3)在Java中,多層繼承也是可以的,即一個(gè)類(lèi)的父類(lèi)可以再繼承另外的父類(lèi)。例如,C類(lèi)繼承自B類(lèi),而B(niǎo)類(lèi)又可以繼承自A類(lèi),這時(shí),C類(lèi)也可稱(chēng)為A類(lèi)的子類(lèi)。例如,下面這種情況是允許的。

class A{}
class B extends A{}   // B類(lèi)繼承A類(lèi),B類(lèi)是A類(lèi)的子類(lèi)
class C extends B{}   // C類(lèi)繼承B類(lèi),C類(lèi)是B類(lèi)的子類(lèi),同時(shí)也是A類(lèi)的子類(lèi)

  (4)在Java中,子類(lèi)和父類(lèi)是一種相對(duì)概念,一個(gè)類(lèi)可以是某個(gè)類(lèi)的父類(lèi),也可以是另一個(gè)類(lèi)的子類(lèi)。例如,在第(3)種情況中,B類(lèi)是A類(lèi)的子類(lèi),同時(shí)又是C類(lèi)的父類(lèi)。

  在繼承中,子類(lèi)不能直接訪問(wèn)父類(lèi)中的私有成員,子類(lèi)可以調(diào)用父類(lèi)的非私有方法,但是不能調(diào)用父類(lèi)的私有成員。

分享到:
在線咨詢(xún) 我要報(bào)名
和我們?cè)诰€交談!