C#關(guān)鍵字之重寫override介紹
一、簡(jiǎn)介
override意思是重寫。它是在子類中重寫父類中的方法,兩個(gè)函數(shù)的函數(shù)特征(函數(shù)名、參數(shù)類型與個(gè)數(shù))相同,用于拓展或修改繼承的方法、屬性、索引器或事件的抽象或虛擬實(shí)現(xiàn),提供從基類繼承的成員的新實(shí)現(xiàn),而通過(guò)override聲明重寫的方法稱為基方法。
二、重寫抽象方法
class Program
{
public abstract class A
{
public abstract void Func();
}
public class B : A
{
public override void Func()
{
Console.WriteLine("B");
}
}
static void Main(string[] args)
{
B b = new B();
}
}三、重寫虛方法
class Program
{
public class A
{
public virtual void Func()
{
Console.WriteLine("A");
}
}
public class B : A
{
public override void Func()
{
Console.WriteLine("B");
}
}
static void Main(string[] args)
{
B b = new B();
b.Func();
}
}四、總結(jié)
1.重寫基方法必須具有與override方法相同的簽名。
2.override聲明不能更改virtual方法的可訪問(wèn)性,且override方法與virtual方法必須具有相同級(jí)別訪問(wèn)修飾符。
3.不能用new、static、virtual修飾符修飾override方法。
4.重寫屬性聲明必須指定與繼承的屬性完全相同的訪問(wèn)修飾符、類型和名稱。
5.重寫的屬性必須是virtual、abstract或override。
6.不能重寫非虛方法或靜態(tài)方法。
7.父類中有abstract,那么子類同名方法必定有override;若父類中有virtual方法,子類同名方法不一定是override。
8.override必定有父子類關(guān)系。
到此這篇關(guān)于C#關(guān)鍵字之重寫override的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用C#自制一個(gè)Windows安裝包的詳細(xì)過(guò)程
這篇文章主要介紹了如何使用C#自制一個(gè)Windows安裝包,文中通過(guò)圖文結(jié)合的方式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-07-07
解決C# 截取當(dāng)前程序窗口指定位置截圖的實(shí)現(xiàn)方法
本篇文章是對(duì)C#中截取當(dāng)前程序窗口指定位置截圖的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C#使用GDI+實(shí)現(xiàn)生成驗(yàn)證碼
這篇文章介紹了C#使用GDI+實(shí)現(xiàn)生成驗(yàn)證碼的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
C#逐行分元素讀取記事本數(shù)據(jù)并寫入數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了C#逐行分元素讀取記事本數(shù)據(jù)并寫入數(shù)據(jù)庫(kù)的方法,通過(guò)StreamReader類里的ReadLine()方法實(shí)現(xiàn)逐行讀取的功能,是非常實(shí)用的技巧,需要的朋友可以參考下2014-12-12

