让java的多重继承成为现实!
點擊上方藍色關(guān)注我們!
大家好,我是雄雄,前兩天給大家說了說java中的四種內(nèi)部類,推文分別為:
靜態(tài)內(nèi)部類和成員內(nèi)部類
方法內(nèi)部類和匿名內(nèi)部類
在內(nèi)部類的基礎上,我們來看看今天的知識點兒。
眾所周知,java類之間只可單繼承,不可多繼承,也就是一個類只能繼承一個類,不可以繼承多個類,那我們?nèi)绻搿胺雌涞蓝兄蹦?#xff1f;這不是危言聳聽,因為我們確實有些情況下需要繼承多個類,比如希望擁有兩個類的行為功能,就很難使用單繼承來解決問題了(當然,使用多個接口實現(xiàn)也是可以解決的)。
那,可不可以不利用接口的情況下實現(xiàn)多繼承呢?當然是可以的,那就是——內(nèi)部類!
下面我們來分析個例子:
假如有一個吃飯的類(Eat)和玩耍的類(Play),吃飯的類里面實現(xiàn)的是吃飯功能,而玩耍的類里面自然實現(xiàn)的是玩耍的功能。
現(xiàn)在新加了一個People類(人),該類想實現(xiàn)吃飯和玩耍的功能,如果使用繼承的話,我們只能實現(xiàn)其中的某一功能,吃飯亦或玩耍,這滿足不了我們的需求。
下面我們來舉個例子,使用內(nèi)部類,讓java的多繼承成為現(xiàn)實。
Eat類:
//吃飯的類 public?class?Eat?{public?void?info?(){System.out.println("正在吃飯");}}Play類:
//玩耍的類 public?class?Play?{public?void?info(){System.out.println("正在玩耍");} }People類:
public?class?People?{//創(chuàng)建吃的 內(nèi)部類public?class?EatIng?extends?Eat{}//創(chuàng)建玩的內(nèi)部類public?class?PlayIng?extends?Play{}//實例化兩個內(nèi)部類的對象EatIng eatIng = new?EatIng();PlayIng playIng = new?PlayIng();//人正在吃飯public?void?peopleEat(){eatIng.info();}//人在玩耍public?void?peoplePlay(){playIng.info();}//main方法主體public?static?void?main(String[] args)?{People people = new?People();people.peopleEat();people.peoplePlay();}}其運行結(jié)果為:
代碼分析:首先我們創(chuàng)建了Eat類和Play類,兩類里面都有一個方法,吃飯和玩耍。然后就是People類,該類中,我們分別創(chuàng)建兩個內(nèi)部類,吃和玩。然后就是實例化兩個內(nèi)部類的對象,最后通過這兩個對象即可實現(xiàn)我們想要實現(xiàn)的方法,你看看是不是就間接的實現(xiàn)了多繼承了呢。這樣雖說有點兒麻煩,不過需求還是達到了!
下期內(nèi)容更精彩!
粉絲群
▲每天都會有不定額的紅包發(fā)放,了解公眾號文章、抽獎最新資訊。
java中,剩下的這兩個內(nèi)部類不太好理解!
java中常見的幾種內(nèi)部類,你會幾個?(未完)
java中你知道的這四種代碼塊嗎?
切記!構(gòu)造函數(shù)里面別一定不要初始化其他類,踩過坑的都知道
總結(jié)
以上是生活随笔為你收集整理的让java的多重继承成为现实!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中,剩下的这两个内部类不太好理解
- 下一篇: 班级日常 | 一天一瞬间!