Java中類的繼承
繼承是面向?qū)ο笕筇卣髦唬筇卣鞣謩e為封裝、繼承、多態(tài)
繼承的基本作用是:代碼復用。有了繼承之后才有“方法覆蓋”和“多態(tài)機制”。
繼承語法格式:
【修飾符列表】class類名extends父類名{
類體=屬性+方法
}
java中只支持單繼承,一個類只能繼承一個類,不能同時繼承多個類。
子類繼承父類
子類、派生類——subclass
父類、基類、超類——superclass
子類繼承父類哪些數(shù)據(jù)?
——私有的不支持繼承
——構(gòu)造方法不支持繼承
——其他數(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類來調(diào)用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 的問題,這屬于內(nèi)部類調(diào)用問題,因為非靜態(tài)變量類型不能在靜態(tài)上下文中引用。將內(nè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("調(diào)用了該方法11");????????}????}????static?class?B?extends?A{????????public?void?dosome(){????????????System.out.println("調(diào)用了該方法22");????????}????}????static?class?C?extends?B{????}}//運行結(jié)果:調(diào)用了該方法22Process?finished?with?exit?code?0
假設一個類沒有顯示繼承任何類,該類默認繼承javaSE庫中的java.lang.Object類
(補充)如果父類實現(xiàn)了某一個接口,則子類繼承父類會自動實現(xiàn)這個接口,已經(jīng)實現(xiàn)的方法也會繼承過來;如果父類是個抽象類,則需要子類重寫實現(xiàn)接口的方法。
以上就是長沙一度軟件培訓java培訓機構(gòu)的小編針對“初學者需要學會的Java繼承類”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。