Java中類的繼承
繼承是面向對象三大特征之一,三大特征分別為封裝、繼承、多態(tài)
繼承的基本作用是:代碼復用。有了繼承之后才有“方法覆蓋”和“多態(tài)機制”。
繼承語法格式:
【修飾符列表】class類名extends父類名{
類體=屬性+方法
}
java中只支持單繼承,一個類只能繼承一個類,不能同時繼承多個類。
子類繼承父類
子類、派生類——subclass
父類、基類、超類——superclass
子類繼承父類哪些數(shù)據(jù)?
——私有的不支持繼承
——構造方法不支持繼承
——其他數(shù)據(jù)都可被繼承
public?class?Inherit?{private?String?name;?????????//用于繼承public?Inherit(){????????this(null);????}????public?Inherit(String?name)?{????????this.name?=?name;????}????public?String?getName()?{????????return?name;????}????public?void?setName(String?name)?{????????this.name?=?name;????}}public?class?InheritTest?extends?Inherit{???//繼承了Inherit中的getname和setname方法}public?class?Test?{????public?static?void?main(String[]?args){????????InheritTest?i?=?new?InheritTest(); ????????i.setName("jack"); //通過InheritTest類來調用Inherit類的setname和getname方法????????System.out.println(i.getName()); }}
雖然java中只支持單繼承,但一個類可間接繼承其他類,如:
C extends B{}B extends A{}A extends T{}
C類直接繼承B類,間接繼承A、T類
在測試繼承的時候出現(xiàn)了 ‘InheritTest.this’ cannot be referenced from a static context 的問題,這屬于內部類調用問題,因為非靜態(tài)變量類型不能在靜態(tài)上下文中引用。將內部類改為static,問題解決。
public?class?InheritTest{????public?static?void?main(String[]?args){????????C?c?=?new?C();????????c.dosome();????}????static?class?A?{????????public?void?dosome(){????????????System.out.println("調用了該方法11");????????}????}????static?class?B?extends?A{????????public?void?dosome(){????????????System.out.println("調用了該方法22");????????}????}????static?class?C?extends?B{????}}//運行結果:調用了該方法22Process?finished?with?exit?code?0
假設一個類沒有顯示繼承任何類,該類默認繼承javaSE庫中的java.lang.Object類
(補充)如果父類實現(xiàn)了某一個接口,則子類繼承父類會自動實現(xiàn)這個接口,已經(jīng)實現(xiàn)的方法也會繼承過來;如果父類是個抽象類,則需要子類重寫實現(xiàn)接口的方法。
以上就是長沙一度軟件培訓java培訓機構的小編針對“初學者需要學會的Java繼承類”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。