色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > 方法和變量在繼承時(shí)的覆蓋和隱藏問(wèn)題

方法和變量在繼承時(shí)的覆蓋和隱藏問(wèn)題 時(shí)間:2018-09-21      來(lái)源:未知

近有個(gè)同學(xué)問(wèn)了我一個(gè)小問(wèn)題,覺(jué)得很有意思,之前一直沒(méi)有想到過(guò)。他說(shuō)“java中存在方法覆蓋,是否存在變量的覆蓋呢?”。我們知道,在java中,子類可以繼承父類,如果子類聲明的方法與父類有重名,這時(shí)就發(fā)生了方法覆蓋。其實(shí),這實(shí)際上這又分為兩種情況,就是方法和變量在繼承時(shí)的覆蓋和隱藏問(wèn)題,這些概念性的東西看似無(wú)聊,但是在面試中還是比較常見(jiàn)的,所以這里來(lái)討論下

首先我們來(lái)看幾個(gè)概念

隱藏 :子類隱藏了父類的變量和方法,那么,子類不能訪問(wèn)父類被隱藏的變量或者方法,但是,將子類轉(zhuǎn)換成父類,可以訪問(wèn)父類被隱藏的變量或者方法

覆蓋 :子類覆蓋了父類的變量或者方法,那么,子類不能訪問(wèn)父類被覆蓋的變量或者方法,將子類轉(zhuǎn)換成父類后同樣不能訪問(wèn)父類被覆蓋的變量或者方法

首先看一下JAVA中方法和變量在繼承時(shí)的覆蓋和隱藏規(guī)則

1.父類的實(shí)例變量和靜態(tài)變量能被子類的同名變量隱藏

2.父類的靜態(tài)方法被子類的同名靜態(tài)方法隱藏

3.父類的實(shí)例方法被子類的同名實(shí)例變量覆蓋

還有幾點(diǎn)需要注意的是

1.不能用子類的靜態(tài)方法隱藏 父類中同樣標(biāo)示(也就是返回值 名字 參數(shù)都一樣)的實(shí)例方法

2.不能用子類的實(shí)例方法覆蓋 父類中同樣標(biāo)示的靜態(tài)方法

3.這點(diǎn)兒請(qǐng)注意,就是變量只會(huì)被隱藏 不會(huì)被覆蓋 ,無(wú)論他是實(shí)例變量還是靜態(tài)變量,而且,子類的靜態(tài)變量可以隱藏 父類的實(shí)例變量,子類的實(shí)例變量可以隱藏 父類的靜態(tài)變量

創(chuàng)建兩個(gè)父子類關(guān)系的類

Java代碼

//父類

class Parent

{

public static String kind="cn.com.farsight.parent";

public static int age=50;

public String name="Parent";

//靜態(tài)方法,返回包名

public static String getKind()

{

System.out.println("parent的getKind()方法被調(diào)用了");

return kind;

}

//靜態(tài)方法,返回年齡

public static int getAge()

{

System.out.println("Parent的getAge()方法被調(diào)用了");

return age;

}

//實(shí)例方法,返回姓名

public String getName()

{

System.out.println("Parent的getName()方法被調(diào)用了");

return this.name;

}

}

//子類

class Child extends Parent

{

public static String kind="cn.com.farsight.child";

public int age=25;

public String name="child";

//隱藏父類靜態(tài)方法

public static String getKind()

{

System.out.println("child的getkind()方法被調(diào)用了");

return kind;

}

//獲取父類包名

public static String getParentKind()

{

return Parent.kind;

}

//覆蓋父類實(shí)例方法

public String getName()

{

System.out.println("child的getName()被調(diào)用了");

return this.name;

}

//獲取父類名稱

public String getParentName()

{

return super.name;

}

/*

*錯(cuò)誤,實(shí)例方法不能覆蓋父類的靜態(tài)方法

public int getAge()

{

return this.age;

}

*/

}

class TestDemo

{

public static void main(String[] args)

{

Child child=new Child();

System.out.printf("子類名稱:%s,年齡:%d,包名:%s%n",child.name,child.age,child.kind);

//輸出:子類名稱:child,年齡:25,包:cn.com.farsight.child

//把child轉(zhuǎn)換成parent對(duì)象

Parent parent=child;

System.out.printf("轉(zhuǎn)換后的名稱:%s,年齡:%d,包名:%s%n",parent.name,parent.age,parent.kind);

//輸出:轉(zhuǎn)換后的名稱:Parent,年齡:50,包:cn.com.farsight.parent

System.out.printf("子類訪問(wèn)父類被隱藏的實(shí)例變量name:%s%n",child.getParentName());

//輸出:子類訪問(wèn)父類被隱藏的實(shí)例變量name:Parent

System.out.printf("子類訪問(wèn)父類被隱藏的靜態(tài)變量kind:%s",child.getParentKind());

//輸出:子類訪問(wèn)父類被隱藏的靜態(tài)變量kind:cn.com.farsight.parent

child.getName();

//輸出:child的getName()被調(diào)用了

//**************注意看這個(gè)方法,返回的還是子類的getName

parent.getName();

//輸出:child的getName()被調(diào)用了

child.getKind();

//輸出:child的getkind()方法被調(diào)用了

parent.getKind();

//輸出:parent的getKind()方法被調(diào)用了

}

}

總結(jié):

1.同名的實(shí)例方法被覆蓋 ,同名的靜態(tài)方法被隱藏 ,child類的getName實(shí)例方法覆蓋 了parent的getName實(shí)例方法,chind的getKind方法隱藏了parent類的getKind方法

2.隱藏和覆蓋的區(qū)別在于,子類對(duì)象轉(zhuǎn)換成父類對(duì)象后,能夠訪問(wèn)父類被隱藏 的變量和方法,而不能訪問(wèn)父類被覆蓋的方法

3.如果需要訪問(wèn)父類被隱藏的實(shí)例變量,加上super就好了,比如訪問(wèn)父類name,使用super.name

上一篇:STM32F407和STM32F051主從I2C通信

下一篇:關(guān)于使用stm32cubemx生成代碼后移植Ucos—III的方法

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見(jiàn)科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5,京公海網(wǎng)安備11010802025203號(hào)

回到頂部

主站蜘蛛池模板: 筋肉雄汁gay雄汁外送网站 | 亚洲国产AV玩弄放荡人妇系列 | 一个色的导航 | 国产成人年无码AV片在线观看 | 国产卡一卡二卡三无线乱码新区 | 国产一二三四在线 | 无限资源最新资源免费看 | 国产白丝无码视频在线观看 | 在线观看成人无码AV | 日韩av女优一区二区 | 久久综合给合久久狠狠狠88 | 任你搞在线观看 | 草草地址线路①屁屁影院成人 | 无码人妻一区二区三区免费视频 | 黑人巨摘花第一次出血 | JAPAN黑人极大黑炮 | 人禽无码视频在线观看 | 亚洲熟妇少妇任你躁在线观看 | 爽到高潮无码视频在线观看 | 国产无遮挡A片又黄又爽网站 | 国产精品女A片爽爽免费按摩 | 国产日韩欧美一区二区久久精品 | 真人做爰高潮全过程毛片 | 爱爱综合帝国社区 | 欧美人与动牲交A免费观看 奇米777四色精品综合影院 | 精品一区日韩 | 毛豆日产精品卡2卡3卡4卡免费 | 亚洲av极品视觉盛宴 | 偷窥中国老太XXXX | 精品日产乱码久久久久久仙踪林 | 久久亚洲国产成人精品性色 | 2019天天爱天天做 | 亚洲av狠狠爱一区二区三区 | 内射少妇36P九色 | 欧日韩在线观看 | 被老师粗大jib捣出了白浆视频 | 国内精品久久久久久TV | WWW内射国产在线观看 | 波多野42部无码喷潮在线 | 亚洲AV日韩综合一区久热 | 中文字幕av无码无卡免费 |