1樓:兒童百科探索
丟擲類名是關鍵字來談,(我們談的是重寫和過載的問題)
首先澄清一個概念,什麼是過載:
在一個類中(注意),如果有多個方法具有相同的名稱,而有不同的引數,這種行為叫做方法的過載;
構成方法過載的四條基本原則:
1,方法名相同;
2,引數列表必須不同;
3,返回值可以不同,(也可以相同;)
4,可以相互呼叫;
另外,注意,方法的過載是發生在同一個類中;
還有一種子類繼承父類,子類存在與父類方法名相同,引數相同,返回值相同叫做方法的重寫(或者覆蓋)
以上的問題即存在重寫也存在過載的問題,
a,是方法的重寫,(方法名相同,引數相同,返回值相同)
b,會報錯,重寫父類方法,返回值不匹配(過載第二條不符合)
c,d子類繼承父類,那麼子類也就有父類的方法,是在同一個類中,也符合過載的四條基本原則是過載
在方法的過載中的時候,不能將返回值的不同當成兩個方法的區別;
也就是說,在同一個類中,不能有這樣的兩個方法,他們的方法名相同,引數相同,只是方法的返回值不同,編譯就報錯了,b就是這種情況
答案:不會報錯的是acd 但只有cd是過載
j**a方法過載的問題 10
2樓:匿名使用者
回答第一個問題,傳個1.0是絕對不會走float的,就好比float a=1.0;這樣定義是錯誤的,即不能把double型的資料直接轉換成float的。
至於傳1的話,為了節省記憶體,就選擇了float
3樓:匿名使用者
set集合是通過hashcode()和equals()兩個方法來判斷是否是同一個物件的
4樓:韋自香
set介面繼承collection介面,儲存一組唯
一、無序的物件。
set介面不允許重複是因為自身內部的排序規則
j**a中的方法過載問題
5樓:無二肆玖一
b。方法過載:方法名相同,引數型別或者引數個數、順序不同。
sort(int x)引數是一個int型別的引數x
a:引數是一個folat型別的引數x,符合引數型別不同,構成過載
b:引數也是一個int型別的引數y,與原方法相同,不構成過載(注意是引數型別相同,與引數名無關)
c:引數是兩個int型別的引數x和y,符合引數個數不同,構成過載
d:引數是double型別的引數y,符合引數型別不同,構成過載
另外,還有提到的引數順序,比如原方法是sort(int x, float y)
那麼sort(float y, int x)也構成過載,因為引數順序不同,但是注意了
如果原方法是sort(int x,int y)
那麼sort(int y,int x)並不是過載!!!因為引數型別都是int,引數名x,y互換沒有影響,跟上面說的「與引數名無關」一致。
6樓:逐浪
方法過載要求方法簽名不一致才可以過載。
方法簽名包括方法名稱和引數列表。
所以選b。
7樓:酷魚
選b,方法名相同,引數列表不相同(引數型別不同,引數個數不同,引數順序不同),返回值隨意。
j**a方法過載問題
8樓:匿名使用者
方法過載是指在一個類中定義多個同名的方法,但要求個方法具有不同的引數的型別或引數的個數, 但是和返回值無關。
第一題:答案是a和c。
a的引數與題目給出的引數型別不一樣 題目中是int z 而a的答案中是float z.
c的引數個數與題目中給出的不一樣.
所以a和c是對題目中cal方法的過載.
b和d之所以不是過載是因為引數個數和型別與題目給出的完全一致.
第二題:答案是 a和c.
原因都是因為引數個數不一樣.
b和d之所以錯誤的是因為引數個數型別一致.
其實方法過載判斷的重點很簡單.
方法名要一樣.
引數個數不一樣或者引數型別不一樣.
3.返回型別與過載沒有什麼關係的
9樓:匿名使用者
過載的定義是:方法名相同,方法返回的型別也要相同,引數個數或型別不同。
5、答案:c
a. 返回型別不同,不對
b.同上
c.引數格式不一樣,對的
d.引數名字不一樣,沒有意義。不對
6、答案 a
a.引數個數不一樣,對的
b.返回型別不同,不對
c.同上
d.引數名字不一樣,沒有意義。不對
補充:一個類裡面是不允許方法名一樣,方法返回型別不一樣的兩個方法存在,你可以試一下,是會報錯的。
10樓:開口便聽見想念
一.方法名一定要相同。
二.方法的參數列必須不同,包括引數的型別或個數,以此區分不同的方法體。
1.如果引數個數不同,就不管它的引數型別了!
2.如果引數個數相同,那麼引數的型別或者引數的順序必須不同。
三.方法的返回型別、修飾符可以相同,也可不同。
11樓:匿名使用者
5:a c-------------b錯誤:雖然返回值不一樣,但是引數都是int,3個。
d錯誤:引數個數型別相同,都是int,3個, 雖然引數的名字不一樣,但是過載必須是 引數型別不同或引數個數不同。
6:a c。----------------b錯誤:引數型別int, 個數1個,相同了,不能算過載 d錯誤:引數個數、型別、返回值都一樣
12樓:匿名使用者
a,a,c
過載就是根據引數的不同而選擇不同的函式入口,返回值無所謂,引數必須要能區分不同的函式,對引數來說,引數型別才是重要的,引數名字只是個代號,不作為判斷過載的依據
13樓:匿名使用者
方法過載 很好理解,返回值相同,方法名相同,引數不同(個數或者型別不同)即可,從這幾個方面分析就好了
5:c6:a
14樓:曉飛
方法過載是指方法名和方法的返回型別都相同,但方法引數不一樣.
因此5題:c 6題 :a
j**ascript方法過載問題
15樓:匿名使用者
so easy~先判斷引數數量即可
常規寫法
function mymethod()
else if (arguments.length == 2)}es6標準寫法(舊瀏覽器不支援)
function mymethod(...params)else if (params.length == 2)}以上方法等效
有關j**a方法的過載的問題
16樓:匿名使用者
,你重新寫一個方法,這個方法的名字也叫test,但是兩個方法的引數不同.
也就是說,過載指的是在一個類的內部有兩個或多個名字相同但引數不同的方法.
覆寫,也叫覆蓋或重寫.如果一個父類有一個方法名為test,在他的子類裡也寫一個方法名字也是test,兩個方法返回型別和引數都相同,但是方法體不同.
也就是說,覆寫指的是不同的類中(父類方法,子類覆寫)有兩個或多個返回型別,方法名,引數都相同,但是方法體不同的方法
另外,超載指的是覆蓋,也就是覆寫.過載則和過載同一概念
17樓:匿名使用者
兩個引數當然是調第一個嘛。方法簽名咯,比如不同方法名,不同引數型別,都會有不同的方法簽名,生成中間**的時候就搞定了。呼叫cmethod(int i)與cmethod(string s)的區別其實跟你調amethod()和bmethod()的本質是一樣的
18樓:蝶兒忙
兩個引數選擇前一個方法
因為後一個方法是一個引數的。。。
19樓:冰上游魚
你輸入兩個引數(int 型),他當時選上面的。
選最佳匹配的那個。 編譯器怎麼實現,不知道。 沒寫過編譯器。 呵呵
20樓:何桂坤
底層怎麼實現,那你要看原始碼了;我們知道他自己會根據引數型別,和個數判斷
php怎麼方法過載
php物件導向 oop 程式設計完全教程 12.過載新的方法 在學習php 這種語言中你會發現,php中的方法是不能過載的,所謂的方法過載就是定義相同的方法名,通過 引數的個數 不同或 引數的型別 不同,來訪問我們的相同方法名的不同方法。但是因為php是弱型別的語言,所以在方法的引數中本身就可以接收...
請教關於c 運算子過載的問題,謝謝
如果不用 實際上語法是沒錯的呢?而且執行也是可以的呢?答案是yes,引用array v表示回的含義是v和傳入的函答數實參共用一片記憶體區域,對v進行賦值等操作也會對傳入的實參造成修改,如果不用 的話那在過載函式中所使用的變數v就是實參的一個副本,也即另外開闢一片記憶體區域再複製一份與函式實參一模一樣...
如何判斷冰箱過載堡器損壞,如何判斷冰箱過載保護器損壞
用電筆測保護器接壓縮機的觸點 冰箱過載保護器在哪兒 內建保護器裝在壓縮機的裡面,在壓縮機的外邊上面是看不到的,壓縮機出廠的時候就做進去了。外接保護器,一般裝在壓縮機的3個接線端子的公共端上面,開啟壓縮機的盒蓋就能看見。電流過大時發熱絲溫度增高,甚至燒紅,電流大的原因有匝間短路,啟動器壞,接地,電壓過...