Java參數(shù)重載的實(shí)例用法

這篇文章主要講解了“Java參數(shù)重載的實(shí)例用法”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java參數(shù)重載的實(shí)例用法”吧!

目前累計(jì)服務(wù)客戶上千,積累了豐富的產(chǎn)品開發(fā)及服務(wù)經(jīng)驗(yàn)。以網(wǎng)站設(shè)計(jì)水平和技術(shù)實(shí)力,樹立企業(yè)形象,為客戶提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)、網(wǎng)絡(luò)營銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。創(chuàng)新互聯(lián)始終以務(wù)實(shí)、誠信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過對(duì)領(lǐng)先技術(shù)的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究、對(duì)客戶形象的視覺傳遞、對(duì)應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。

package someTest;

class SSSuperClass{}
class SSSubClass extends SSSuperClass{}

public class TestDuplicate {

	public void function(Object o){				//方法1
		System.out.print("Object\n");
	}
	
	public void function(int[] array){			//方法2
		System.out.print("int[] array\n");
	}
	
	public void function(SSSuperClass array){	//方法3
		System.out.print("SSSuperClass\n");
	}
	
	public void function(SSSubClass array){		//方法4
		System.out.print("SSSubClass\n");
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new TestDuplicate().function(new Object());			//調(diào)用1
		new TestDuplicate().function(new int[3]);			//調(diào)用2
		new TestDuplicate().function(new SSSubClass());		//調(diào)用3
		new TestDuplicate().function(new SSSuperClass());	//調(diào)用4
		/**
		 * 一切都看似很和諧。參數(shù)重載可以允許父類和子類關(guān)系的存在,
		 * 調(diào)用的時(shí)候會(huì)根據(jù)實(shí)際的參數(shù),尋找最為精確匹配的那個(gè)函數(shù)去執(zhí)行。
		 * 如果我們?nèi)サ舴椒?,調(diào)用4就會(huì)發(fā)現(xiàn)方法3才是它最匹配的函數(shù),所以調(diào)用之。
		 * 如果去掉方法3,調(diào)用4會(huì)發(fā)現(xiàn)方法1才是自己的實(shí)參最匹配的函數(shù),所以調(diào)用之。
		 * */
		
		/**
		 * 但是如果我們傳入的不是數(shù)組,也不是任何對(duì)象,而是一個(gè)null呢???
		 * 同樣null也會(huì)找一個(gè)最為精確匹配的函數(shù),但是這里會(huì)編譯錯(cuò)誤。因?yàn)檫@邊有兩條繼承
		 * 路徑,一個(gè)是Object->array[],一個(gè)是Object->SSSuperClass->SSSubClass。
		 * 所以方法2和方法4,null就不知道哪個(gè)才是最精確的匹配了。
		 * 所以我們方法3和方法4在下面的調(diào)用下不兼容,有歧義。
		 * */		
		//new TestDuplicate().function(null);	//compile error
		
		//可以看到null雖然是對(duì)象,但是卻什么都不是,甚至連Object都不是,但是他依然會(huì)尋找最為匹配的形參
		String s = null;
		String ss = "sss";
		if(s instanceof String) System.out.print("s is String");
		if(ss instanceof String) System.out.print("ss is String");
		if(null instanceof Object) System.out.print("null is a Object");
	}
}

Java參數(shù)重載的實(shí)例用法

感謝各位的閱讀,以上就是“Java參數(shù)重載的實(shí)例用法”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Java參數(shù)重載的實(shí)例用法這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

文章題目:Java參數(shù)重載的實(shí)例用法
分享路徑:http://muchs.cn/article26/pichcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、域名注冊(cè)網(wǎng)站策劃、自適應(yīng)網(wǎng)站微信公眾號(hào)、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)