java缺陷管理工具 Java為什么不支持多繼承?
Java為什么不支持多繼承?謝謝啦邀請(qǐng),這里我簡(jiǎn)單點(diǎn)說(shuō)看看我的看法這里要區(qū)分幫一下忙java8之前和之后:簡(jiǎn)單怎么學(xué)習(xí)java要從生活去探討一番,這事情就沒(méi)那你急切了,舉個(gè)最簡(jiǎn)單的例子,一個(gè)人有一個(gè)親
Java為什么不支持多繼承?
謝謝啦邀請(qǐng),這里我簡(jiǎn)單點(diǎn)說(shuō)看看我的看法這里要區(qū)分幫一下忙java8之前和之后:簡(jiǎn)單怎么學(xué)習(xí)java要從生活去探討一番,這事情就沒(méi)那你急切了,舉個(gè)最簡(jiǎn)單的例子,一個(gè)人有一個(gè)親生的孩子父親,這是對(duì)的吧!那么java中將生活中的例子在類(lèi)中非常好的可以體現(xiàn)了不出來(lái)!繼承的主要目的是子承父業(yè),提升更合適的代碼復(fù)用性!
下一步我們從代碼層面上知道一點(diǎn)下:
假設(shè)A-rlm繼承B那就可以推知可以能夠得到B類(lèi)中方法A類(lèi)中時(shí)是可以可以使用的(特別注意這里再說(shuō)成員函數(shù)的問(wèn)題);
再題中A-a8無(wú)法繼承BA-r26可以繼承C,而此時(shí)B和C類(lèi)中都聲明了某一個(gè)同名的方法,這樣的A類(lèi)就尷尬了,A類(lèi)中卻沒(méi)覆寫(xiě)B(tài)、C中的方法,那你A類(lèi)使用時(shí)不知道用B呢?還是C呢?
我大概A自己都是暈乎乎的,哈哈。那就就是為了以免那樣不自在的事情不可能發(fā)生,java不不允許又出現(xiàn)狀況。只不過(guò)值的注意的時(shí):java中時(shí)存在多能繼承的,那是接口:
這里就好玩了,為什么接口這個(gè)可以?注意一點(diǎn)接口是一種規(guī)則的體現(xiàn),它詳細(xì)闡釋的是一種標(biāo)準(zhǔn):
舉例員工類(lèi)可以繼承了人類(lèi),我們很清楚,人類(lèi)有一些特性,不過(guò)不同的員工類(lèi)他的職責(zé)是不同的,諸如:A員工(一個(gè)員工的實(shí)例),他是一個(gè)文員,他用電腦帶的而且好,但是會(huì)打羽毛球。同時(shí)B員工(一個(gè)員工的實(shí)例),他是一個(gè)財(cái)務(wù),他也會(huì)電腦,可是他會(huì)踢足球。那你此時(shí)會(huì)有一個(gè)問(wèn)題,我們上列的三個(gè)功能:玩電腦,玩籃球,籃球要千萬(wàn)不能放進(jìn)人類(lèi)中,我們清楚員工類(lèi)不能繼承自人類(lèi)。
答案是不要,只不過(guò)這樣會(huì)倒致父類(lèi)實(shí)在是太略顯臃腫。此時(shí)接口就直接出現(xiàn)了,Emp(員工)extendsPerson(人類(lèi))implement PlayFootball,那樣是不是要好呢!一個(gè)球踢得好的,很有可能是不是雖然很熟悉踢足球的規(guī)則呢,這樣就有了PlayFootballextendsChiese(的蹴鞠)extendsEnglish(英式籃球)。是因?yàn)闃?biāo)準(zhǔn)很多呀,一個(gè)足球運(yùn)動(dòng)員會(huì)體足球,他同樣的可能短跑也很厲害!
不知道這樣說(shuō)能否讓大家明白,畢竟是全手到,因此確實(shí)不愿意花精力,大家有問(wèn)題也可以再打聽(tīng)一下我的頭條號(hào):IT蛇精病,有事私信聊就行!嗯的或右上角了解強(qiáng)勢(shì)攻擊!嘿嘿嘿嘿,前的有發(fā)過(guò)這方面的文章,大家可以不看一下
Java中常用的開(kāi)發(fā)工具有哪些?
充當(dāng)一名最優(yōu)秀的Java程序員,怎可沒(méi)有幾款輕松自如的高效開(kāi)發(fā)工具呢!市面上開(kāi)發(fā)庫(kù)、工具千千萬(wàn),千鋒推薦推薦給java程序員的幾款開(kāi)發(fā)工具。