什么是繼承關(guān)系:
從面向?qū)ο蟮慕嵌壬险f:繼承是一種從一般到特殊的關(guān)系,是一種“is a”的關(guān)系,即子類是對父類的拓展,是一種特殊的父類,比如:狗是動(dòng)物的一種特殊情況,狗屬于動(dòng)物。
如何表示繼承
在Java語言中,存在多個(gè)類的時(shí)候,我們使用extends關(guān)鍵字來表示子類和父類之間的關(guān)系.
- 語法格式: 在定義子類的時(shí)候來表明自己需要拓展于哪一個(gè)父類.
public class 子類類名 extends 父類類名
{
//編寫自己特有的狀態(tài)和行為
}
- Object類是Java語言的根類(老祖宗,任何類都是Object的子類.)
class Person{} 等價(jià)于 class Person extends Object{}
Object類要么是一個(gè)類直接父類,要么是一個(gè)類間接父類. - 注意:
在Java中,類和類之間的繼承關(guān)系只允許單繼承,不允許多繼承.
也就是說一個(gè)類A,只能有一個(gè)直接的父類,不能出現(xiàn)類A同時(shí)繼承于
類B和類C. - 繼承關(guān)系的作用:
1.解決了代碼的重復(fù)問題.
2.真正的作用,表示出一個(gè)體系.
繼承了什么
子類繼承父類之后,子類到底繼承了父類的哪些成員呢?
可以根據(jù)訪問修飾符來判斷:
- 父類中的成員使用public修飾,子類繼承.
- 父類中的成員使用protected修飾,即使父類和子類不在同一個(gè)包中.子類也繼承.
- 如果父類和子類在同一個(gè)包中,此時(shí)子類可有繼承父類中缺省修飾符的成員.
- 父類中的成員使用private修飾,子類繼承不到.因?yàn)閜rivate只能在本類中訪問.
- 父類的構(gòu)造器,子類也不能繼承,因?yàn)闃?gòu)造器必須和當(dāng)前的類名相同.