導航:首頁 > 研究方法 > 方法的重載是什麼

方法的重載是什麼

發布時間:2022-06-26 02:48:31

Ⅰ 方法的重載

在講述方法重載的概念之前,我們先來看一下Console.WriteLine()方法.如果在控制台輸出一個整數的值,代碼如下:
int i;
Console.WriteLine(i)
如果輸出一個字元串,代碼如下:
string s=」hello world」;
Console.WriteLine(s);
看到上面年的代碼我們會不會有疑問? WriteLine()方法的參數到底是什麼?如果他是int 型,那編譯第二個例子就會出錯?
但實際上編譯不會出錯,運行後也能得到預期的效果,為什麼呢?
答案是Consle類存在不同的WriteLine()方法,他們名稱相同但是參數不同.
下面我們例舉一些WriteLine()方法:

像Consle這樣有多個同名的方法的現象稱為方法重載.
方法重載的定義是:
可以在一個類中定義多個同名的方法,這些方法通過不同的參數類型或者參數的個數來區分.
注意:不能僅僅通過返回值類型的不同來定義多個方法.例如下面的代碼在編譯時將會出錯.
class Myclass
{
public int add(int x,int y)
{
int i=x+y;
return i;
}
public static string add(int x,int y)
{
int i=x+y;
return i.ToString();
}
}
下面的例子定義了IsEqual()方法的兩個重載,分別用來判斷整數和兩個字元串是否相等.
using System;

namespace ConsoleApplication3
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
bool b1 = MyClass.IsEqual(3, 5);
bool b2 = MyClass.IsEqual("abc", "ABC");
Console.WriteLine(b1);
Console.WriteLine(b2);
Console.ReadLine();
}
}

class MyClass
{
public static bool IsEqual(int x, int y)
{
if (x == y)
{
return true;
}
else
{
return false;
}
}

public static bool IsEqual(string s1, string s2)
{
if (s1 == s2)
{
return true;
}
else
{
return false;
}
}
}
}
一個方法可以有多少個重載是沒有限制的,就好象他們是碰巧同名的不同方法而已.
例如:
MessageBox類調用靜態方法Show(),該方法有多個重載,一個較常用的重載格式為:

public static DialogResult Show(
string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon);
該重載用於顯示具有制定文本,標題,按鈕,圖標的消息框。其中text是指要顯示的文本,caption是指要在消息框的標題欄中顯示的文本,buttons是MessageBoxButtons的枚舉值之一,表1;可指定在消息框中顯示哪些按鈕,icon是MessageBoxIcon 的枚舉值之一。表2

成員名稱 說明

AbortRetryIgnore 消息框包含「中止」、「重試」和「忽略」按鈕。

OK 消息框包含「確定」按鈕。

OKCancel 消息框包含「確定」和「取消」按鈕。

RetryCancel 消息框包含「重試」和「取消」按鈕。

YesNo 消息框包含「是」和「否」按鈕。

YesNoCancel 消息框包含「是」、「否」和「取消」按鈕。

例如private void button1_Click(object sender, System.EventArgs e) {
string str;
if(textBox1.Text == "") {
MessageBox.Show("You must enter a name.", "Name Entry Error",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else {
// Code to act on the data entered would go here.
str=textBox1.Text;
}
}

表2
成員名稱 說明

Asterisk 該消息框包含一個符號,該符號是由一個圓圈及其中的小寫字母 i 組成的。
Error 該消息框包含一個符號,該符號是由一個紅色背景的圓圈及其中的白色 X 組成的。

Exclamation 該消息框包含一個符號,該符號是由一個黃色背景的三角形及其中的一個感嘆號組成的。

Hand 該消息框包含一個符號,該符號是由一個紅色背景的圓圈及其中的白色 X 組成的。
Information 該消息框包含一個符號,該符號是由一個圓圈及其中的小寫字母 i 組成的。

None 消息框未包含符號。

Question 該消息框包含一個符號,該符號是由一個圓圈和其中的一個問號組成的。
Stop 該消息框包含一個符號,該符號是由一個紅色背景的圓圈及其中的白色 X 組成的。
Warning 該消息框包含一個符號,該符號是由一個黃色背景的三角形及其中的一個感嘆號組成的。

再比如:
MessageBox.Show(「是否重新輸入數據?」,」我的消息框」, MessageBoxButtons.OKCancel, MessageBoxIcon. Question);
當關閉消息框時,知道用戶單擊哪個那牛非常重要。例如:如果用戶單擊了確定按鈕,則執行某種操作;如果單擊了取消按鈕,則不執行任何操作。可以通過Show()方法的返回值來判斷用戶多做的選擇,Show()方法的返回值是DialogResult值之一。
DialogResult枚舉值:
值 Cancel :對話框的返回值Cancel (由標簽為取消的按鈕發送)
值 OK:對話框的返回值是OK(通常由標簽為「確定」的按鈕發送)
值 Yes:對話框的返回值是Yes(通常由標簽為「是」的按鈕發送)
值 No:對話框的返回值是No(通常由標簽為「否」的按鈕發送)
例子:
在關閉應用程序的時候,系統會彈出對話框來提示用戶是否要退出應用程序,單擊是就退出,單擊否,則不會退出,模擬一下。
Code\7\Example1.

Ⅱ java方法重載是指一個類中的,方法重寫是不同類中的,對嗎

什麼是方法的重載:
java中,可以在同一個類中用相同的名稱定義兩個或者多個方法,但是參數項不同(分為參數類型不同和參數數量不同)。當兩個方法名稱相同而參數項不同時,那麼就認為此方法被重載,而此過程就被稱為"方法重載"。調用重載方法時,java使用參數的類型和數量決定實際調用重載方法的哪個版本。重載方法可以具有不同的返回類型,但返回類型本身不足以區分方法的兩個版本。因此重載方法的參數類型或者數量必須不同.
方法重載支持多態性,因為它是java實現"一個介面,多重方法"模式的一種方式。此外,構造方法也可以被重載。
什麼是方法重寫:
在類體系結構中,當子類中的方法與其父類中的方法具有相同的方法時,則認為子類中的方法重寫了父類中的方法。從子類中調用重寫方法時,將總是調用出現在子類中的方法,而父類中的方法將會被隱藏。如果程序員需要訪問重寫方法的父類中的該方法,可以使用關鍵字super來完成。
方法重寫以後父類的方法並沒有小時,只是隱藏了而已,仍然是可以調用的。

Ⅲ 什麼是重載方法,什麼是覆蓋方法,主要區別

一、重載方法:方法重載是指在一個類中定義多個同名的方法,但要求每個方法具有不同的參數的類型或參數的個數。調用重載方法時,Java編譯器能通過檢查調用的方法的參數類型和個數選擇一個恰當的方法。

方法重載通常用於創建完成一組任務相似但參數的類型或參數的個數或參數的順序不同的方法。Java的方法重載,就是在類中可以創建多個方法,它們可以有相同的名字,但必須具有不同的參數,即或者是參數的個數不同,或者是參數的類型不同。

調用方法時通過傳遞給它們的不同個數和類型的參數,以及傳入參數的順序來決定具體使用哪個方法

二、覆蓋方法:在Java中,子類可繼承父類中的方法,而不需要重新編寫相同的方法。但有時子類並不想原封不動地繼承父類的方法,而是想做一定的修改,這就需要採用方法的重寫。方法重寫又稱方法覆蓋。

兩者的區別:

1、子類與父類的關系不同:覆蓋方法中的子類與父類之間是垂直關系;在重載方法中因為兩個方法在同一個類中,所以是不同方法之間的水平關系。

2、映射關系不同:覆蓋只能由一個方法,或只能由一對方法產生關系;在重載方法時,多個方法之間發生變化。

3、對於參數列表的需求不同:覆蓋要求參數列表相同;重載要求參數列表不同。

(3)方法的重載是什麼擴展閱讀:

java的特點:

1、高性能

Java是一種先編譯後解釋的語言,所以它不如全編譯性語言快。但是有些情況下性能是很要緊的,為了支持這些情況,Java設計者製作了「及時」編譯程序,它能在運行時把Java位元組碼翻譯成特定CPU的機器代碼,也就是實現全編譯了。

Java位元組碼格式設計時考慮到這些「及時」編譯程序的需要,所以生成機器代碼的過程相當簡單,它能產生相當好的代碼。

2、多線索性

Java是多線索語言,它提供支持多線索的執行,能處理不同任務,使具有線索的程序設計很容易。Java的lang包提供一個Thread類,它支持開始線索、運行線索、停止線索和檢查線索狀態的方法。

Java的線索支持也包括一組同步原語。這些原語是基於監督程序和條件變數風范,由C.A.R.Haore開發的廣泛使用的同步化方案。用關鍵詞synchronized,程序員可以說明某些方法在一個類中不能並發地運行。這些方法在監督程序控制之下,確保變數維持在一個一致的狀態。

3、動態性

Java語言設計成適應於變化的環境,它是一個動態的語言。例如,Java中的類是根據需要載入的,甚至有些是通過網路獲取的。

參考資料來源:

網路-方法重載

網路-方法覆蓋

Ⅳ 方法重載和重寫的區別

Overload是重載的意思,表示在同一個類中,允許存在一個以上的同名函數,只要他們的參數個數或者參數類型不同即可,Override是覆蓋的意思,也就是重寫,它與返回值類型無關,只看參數列表,兩者不同主要體現在:目的不同、范圍不同、參數不同、多態性不同、返回類型不同。

1、目的不同

overload用於增加程序的可讀性(做法不同,但是做的同一事情)。 override用於提供其超級類已經提供的方法的特定實現。

2、范圍不同

overload 在相同的類范圍內內執行。 override發生在兩類具有繼承(繼承)的關系。

3、參數不同

overload參數必須不同。 override參數必須相同。

4、多態性不同

overload 靜態多態,調用的函數在編譯時被選中。 override 是運行時多態性的。

5、返回類型不同

overload中可以相同或不同。但你必須改變參數。 override必須是相同的或協變的。

Ⅳ 在C#,什麼叫做方法重載,怎樣實現方法重載,

重載是指方法名稱相同,
只是參數個數或類型不同.
方法功能是相同的.
除了重載,
還要了解以下幾個關鍵字的用法,與區別:
virtual
定義為虛方法
override
對虛方法實現,具有多態性
new
把基類中的同名方法替換掉,
不具有多態性
//舉個例子
//不使用方法重載
public
string
GetString(string
strValues)
{
if(strValues.Length==0)
{
return
"今天我遇到無名了。。。。";
}
return
"Hello,"+strValues+"兄";
}
//使用重載就是
public
string
GetString()
{
return
GetString("我是無名。。。你是?");
}
public
string
GetString(string
strValues)
{
return
strValues;
}

Ⅵ 簡述什麼是方法重載方法重載必須具備什麼樣的條件

方法重載就是在一個類裡面有方法的名字是一樣的,但是方法的參數不同,可以是參數類型不同也可以是參數的個數不同。給你舉個例子吧
class Area
{
float getArea(float r){
return 3.14*f*r;
}
double getArea(float x,int y){
return x*y;
}
float getArea(int x,float y){
return x*y;
}
double getArea(float x,float y,float z){
return (x*x+y*y+z*z)*2.0;
}
//還可以有其他的變數和方法什麼的……我就不多寫了……
}
註:方法的返回類型和參數的名字不參與比較,也就是說如果兩個方法的名字相同,即使類型不同,也必須保證參數不同。
方法重載的好處就在於當你調用方法的時候可以通過你傳入的參數的類型自動匹配方法,也就是為了突出面向對象的特點。
不曉得你明白了否……

Ⅶ 什麼是方法重載

方法重載是指在一個類中定義多個同名的方法,但要求每個方法具有不同的參數的類型或參數的個數。

Ⅷ java方法重載是什麼意思

首先給LZ一個例子先吧
class ChongZai{
public void a(int a);
public void a(Strting a);
public void a(int a,int b);
}
如上就是一個重載了 而重載要滿足一下條件:
1.必須是同一個類
2.方法名(也可以叫函數)一樣
3.參數類型不一樣或參數數量不一樣

同時我也給LZ講一下重載的作用吧 還是以上面的例子說吧
ChongZai cz =new ChongZai();
cz.a(1); //調用a(int a);
cz.a("傳的參數"); //調用a(String a)
cz.a(1,2); //調用a(int a,int b)

上面已經說了調用哪個方法了 而這個調用方法是程序按照你輸入的參數來判斷調用哪個方法的

重載的功能也講下吧 就比如說你做游戲 那麼可能游戲可以有多個人完 而完的人數又不確定是幾個人 那麼就可以用到重載了

比如說最多3個人完 那麼你可以定義3個參數
public void a(String a);
public void a(String a,String b);
public void a(String a,String b,String c);
兩個人那麼你就調用2個參數的方法 3個人你就調用3個參數的方法 而如何調用上面已經說明了 打字辛苦 謝謝採納!!!

閱讀全文

與方法的重載是什麼相關的資料

熱點內容
手邦魚鉤方法視頻 瀏覽:440
學校禁毒宣傳的方法有哪些 瀏覽:381
瓷磚輻射儀檢測方法 瀏覽:64
吃雞生蛋的正確方法 瀏覽:682
肝鬱氣滯治療方法 瀏覽:123
斯塔福犬的訓練方法 瀏覽:281
藍牙發射器連接電腦正確方法 瀏覽:432
經濟和市場研究的定量和定性方法 瀏覽:104
彩紙做電視的簡單方法 瀏覽:857
兒童植物標本製作方法簡單 瀏覽:10
內痔瘡脫肛最佳治療方法 瀏覽:947
治療截癱的方法 瀏覽:250
電視路由器聲音怎麼設置在哪裡設置方法 瀏覽:1000
用什麼方法可以遮霜 瀏覽:609
金屬成分分析方法 瀏覽:54
化學常用計算方法視頻 瀏覽:552
研究方法如何銜接 瀏覽:283
教小孩跳繩方法視頻 瀏覽:433
桑黃食用方法哪裡好 瀏覽:585
福建蘑菇種植方法哪裡有 瀏覽:647