C 基礎 重寫和過載的區別

2021-07-26 18:32:54 字數 1414 閱讀 9326

子類和父類的方法名相同,可以在子類的方法名後面加new ,new是將基類方法隱藏,但不影響父類的功能。

public class person

}public class teacher : person

}

不同物件對同乙個方法呼叫的不同行為(指不同物件收到同一次訊息時,會產生不同的行為),因為子類在繼承父類的方法時,在呼叫和執行的是父類的方法,但不同的子類可能表現出不同的形態,比如:貓和狗都繼承了動物叫的方法,但貓和狗叫的聲音是不同的,所以無法繼承動物叫的方法,這時就需要重寫。

如何重寫:重寫父類方法的前提是父類中的該方法被宣告為virtual或者abstract型別;重寫父類方法需要override關鍵字

用virtual修飾的方法,在子類中通過override關鍵字重寫,常見的虛方法tostring()

public class person

}public class teacher : person

}

是為子類寫的,自己沒法使用;父類是抽象類,子類繼承了這個類,必須把抽象類中的抽象方法重寫。抽象類只能用作基類,無法例項化(抽象類沒有方法體,如果用在子類中,沒有任何呼叫,本身不能實現任何功能方法,所以只能在父類)

public abstract class animal //抽象方法必須在抽象類中

public class pig :animal

}

同乙個類中方法名相同,但是引數不同,引數的個數不同或返回型別不同。可以根據引數選擇呼叫的方法,重寫是物件導向的概念(類中的不同物件的同一功能表現不同的形態),過載是面向過程的概念(不同的需求呼叫過載出的不同方法)。

public person(stringname, char gender, intage)//過載的作用是為了不同的需求可能需要不同的引數顯示,所以定義多個不同的方法在客戶端可以直接呼叫

publicperson(string name)

public person()

try:乙個 try 塊標識了乙個將被啟用的特定的異常的**塊。後跟乙個或多個 catch 塊。

catch:程式通過異常處理程式捕獲異常。catch 關鍵字表示異常的捕獲。

finally:finally 塊用於執行給定的語句,不管異常是否被丟擲都會執行。例如,如果您開啟乙個檔案,不管是否出現異常檔案都要被關閉。

throw:當問題出現時,程式丟擲乙個異常。使用 throw 關鍵字來完成。

namespace _11異常處理

catch (exception ex)

finally

console.readkey(); }}

}

C 重寫和過載的區別?重寫和過載的意義?

重寫 要求方法名 引數和返回值相同 意義 重寫是為了增強類的重用性和復用性,擴充套件性 重寫是對類中方法的擴充,因為繼承用的是父類的東西,重寫則不僅得到父類的東西,同時也加入了自己的東西。方法重寫的一些特性 1.發生方法重寫的兩個方法返回值 方法名 引數列表必須完全一致 子類重寫父類的方法 2.子類...

C 過載和重寫的區別

日常編碼中想要更好,效率更高,c 基礎很重要,只有深入了解基礎才會在使用過程中靈活多變。今天來看一下,編碼過程中經常遇到的過載與重寫的區別。1 過載在同類中 重寫在父子類中進行 2 定義的方式不同 過載定義是方法名相同,裡面的引數不同 重寫是方法名和引數都相同 3 呼叫的方式不同 過載相同的物件呼叫...

過載和重寫區別

區別就是 過載 只在自己內部類 繼承的時候通過變換返回引數型別和引數個數來實現的 或者只在乙個類中的話,就是通過構造方法的引數不同來進行過載 左邊的是重寫,右邊的是過載 右邊子類的方法和父類的方法是完全兩個方法,因為引數變了 重寫 子類和父類之間 是子類實現父類同名方法,而且方法內部的引數型別要一模...