方法可以重寫(xiě),變量可以嗎
測(cè)試類(lèi):
public?class?Initail?{ ????public?static?void?main(String[]?args)?{ ????????Phone?phone?=?new?Phone(); ????????SmartPhone?smartPhone?=?new?SmartPhone(); ????????phone.call(); ????????smartPhone.call(); ????????phone.printTarget(); ????????smartPhone.printTarget(); ????} }
父類(lèi)
public?class?Phone?{ ????String?target?=?"me"; ????public?void?call(){ ????????System.out.println("You?call?to?"+this.target); ????} ????public?void?printTarget(){ ????????System.out.println(this.target); ????} }
子類(lèi)
public?class?SmartPhone?extends?Phone?{ ????//String?target?=?"notme"; ????//不寫(xiě)這一行,this.target?為父類(lèi)中的me ????public?void?call(){ ????????System.out.println("You?call?to?"+this.target); ????} ????public?void?printTarget(){ ????????System.out.println(this.target); ????} }
此時(shí)運(yùn)行smartPhone.printTarget()的結(jié)果為me,在該類(lèi)里沒(méi)有target變量,它卻識(shí)別到了父類(lèi)里的target,但如果去掉注釋?zhuān)蜁?huì)使用子類(lèi)的target,這算是一種重寫(xiě)嗎?按理說(shuō)不可以定義重名的變量,那么是重寫(xiě)了(子類(lèi)有target變量,被覆寫(xiě)為notme),還是說(shuō)目前的子類(lèi)中沒(méi)有target變量,變量是父類(lèi)的呢?(類(lèi)似于子類(lèi)沒(méi)有target存在時(shí),target 就相當(dāng)于是 super.target)
2021-01-04
是一種重寫(xiě)
2020-09-14
變量不可以重寫(xiě)