C 重寫和過載

2021-09-24 18:19:55 字數 1082 閱讀 6623

已遷移至本人部落格

首先分別建立三個類,分別為person,man,women

其中person為父類,man繼承person,women繼承man

virtual用法:

1. 在父類中定義virtual方法,但在子類中沒有override該方法,則子類呼叫父類該方法時輸出父類方法的值。

2.在父類中定義virtual方法,在子類中override該方法,則子類呼叫父類該方法時輸出子類重寫父類方法的值。

重寫

class person

}class man:person

}class women:man

}

base.say();是用於重寫時同時輸出父類方法的值

在主程式中例項化

//輸出(我是你爸爸)

person p=new person();

p.say();

//父類例項化子類,會輸出子類中的值,不能用子類去例項化父類,

//若在重寫的方法中加入base,則會在例項化的子類中同時輸出父類方法和子類方法的值

person p=new man();//我是你兒子

person p1=new women();//我是你女兒

man m=new women();//我是你女兒

過載:同名不同引數或引數型別

class man:person

public virtual void say(string s)

}

用virtual關鍵字,在子類women中則可重寫say(string s)

man m = new man();

m.say("2");

abstract:可以用來修飾類,方法,屬性,索引器和時間,這裡不包括欄位. 使用abstrac修飾的類,該類只能作為其他類的父類,不能例項化,而且abstract修飾的成員在子類中必須全部實現,不允許部分實現,否則編譯異常. 

abstract class person

}class man:person

}man m = new man();

C 重寫和過載

要求 三大同 引數相同,方法名相同,返回值相同 意義 增強類的重用性,擴充套件性,重寫是對類中方法的擴充,重寫繼承用的是父類的東西,則不僅得到父類的特徵,同時也加入了自己的東西 關鍵字 基類函式用virtual修飾,派生類用override修飾 注意 不能重寫非虛方法或靜態方法 testdemo 主...

C 過載和重寫 覆蓋

何為重寫?重寫 override 指子類修改父類中某個函式的函式體,需要重寫的父類中的函式必須是由virtual abstract 或 override標註的,不能重寫非虛方法或靜態方法。override是在繼承的時候,如果你寫的函式與要繼承的函式函式特徵 函式特徵包括函式名,引數的型別和個數 相同...

C 過載 隱藏和重寫

1.什麼是過載呢?過載 同乙個作用域,相同函式名,引數列表不同,與返回值是否相同沒有關係,過載又稱靜態多型 過載的作用 減輕程式設計師對函式名的記憶負擔,可讓所有功能相同的函式使用同乙個名字。引數列表不同可表現在 1 引數個數方面 例如 int add int i,int j int add int...