本篇文章給大家分享的是有關(guān)Java的函數(shù)的奇怪重載是什么,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
我們注重客戶提出的每個要求,我們充分考慮每一個細節(jié),我們積極的做好成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)服務(wù),我們努力開拓更好的視野,通過不懈的努力,成都創(chuàng)新互聯(lián)贏得了業(yè)內(nèi)的良好聲譽,這一切,也不斷的激勵著我們更好的服務(wù)客戶。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計,小程序定制開發(fā),網(wǎng)站開發(fā),技術(shù)開發(fā)實力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫的技術(shù)開發(fā)工程師。
大家都知道,Java中的類只能繼承一個父類,但是可以實現(xiàn)多個接口。之所以這樣,據(jù)說是因為多重繼承的概念比較混亂。但是,多接口實現(xiàn)會出現(xiàn)更加混亂的問題。
1. 如果一個類實現(xiàn)了兩個接口,但是兩個接口中有簽名一致的函數(shù),怎么辦?
實際上,在同一個函數(shù)中,只能有一個簽名一致的函數(shù)。如下:
interface ClickListener { void fire(); } interface TouchListener { void fire(); } class Button implements ClickListener, TouchListener { @Override public void fire() { // ... } }
兩個Listener的對fire的調(diào)用,都會指向同一個函數(shù)。
2. 在1的基礎(chǔ)上,如果Button的父類已經(jīng)有一個簽名一致的函數(shù)。如下:
interface ClickListener { void fire(); } interface TouchListener { void fire(); } class ButtonBase { public void fire() { // ... } } class Button extends ButtonBase implements ClickListener, TouchListener { }
那么此時Button中可以不存在任何函數(shù)。兩個Listener的對fire的調(diào)用,都會指向ButtonBase中的函數(shù)。奇怪么?
這種奇怪的做法和C++中的“復(fù)雜”多重繼承相比,在被調(diào)用函數(shù)中完全不知道調(diào)用來自哪個Listener觸發(fā),無法根據(jù)不同的來源做不同的處理。更加變態(tài)的是,如果兩個Listener中的函數(shù)只有返回值不一樣的時候——對不起,悲劇了——你不能同時實現(xiàn)這兩個接口——因為編譯器不支持。
但是,這種奇怪的做法也有其實際的用途,請看下例:
/* public interface */ public interface Animal { void run(); } /* internal class */ private class Dog { @Override void run() { // ... } } /* public interface */ public FlyAnimal extends Animal { void fly(); } /* internal class */ private class FlyDog extends Dog implements FlyAnimal { @Override void fly() { // ... } }
我只能說,Java太兇殘了。
以上就是Java的函數(shù)的奇怪重載是什么,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文題目:Java的函數(shù)的奇怪重載是什么
分享網(wǎng)址:http://muchs.cn/article36/pjjjpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、品牌網(wǎng)站制作、自適應(yīng)網(wǎng)站、外貿(mào)建站、外貿(mào)網(wǎng)站建設(shè)、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)