C 基礎知識整理 基礎知識(7) 方法的隱藏

2021-08-27 01:15:04 字數 1881 閱讀 2026

繼承和抽象類中提到過,子類與父類的方法間有這些關係:

子類直接使用父類方法(但是必須父類方法是public或protected型別);

子類的方法覆蓋父類方法(override);

子類的方法過載父類方法(overload);

看下面這種情況:

public class yschool

}public string name

}public yschool()

public yschool(int id, string name)

/// /// 構造器

///

public yschool(int id)

}public class yteacher

}public string name

}public yschool school

return school;

}set

}public string introduction

set}

public string imagepath

set}

/// /// 構造器

///

public yteacher(int id, string name)

/// /// 構造器

///

public yteacher(int id, string name, yschool school)

/// /// 給學生講課的方法

///

public void toteachstudents()

老師教育同學們: good good study,day day up!", this.name));

}/// /// 懲罰犯錯誤學生的方法

/// 加virtual關鍵字,表示該方法可以被覆蓋重寫

///

///

public virtual void punishmentstudents(string punishmentcontent)

的 老師讓犯錯誤的學生 。", this.school.name, this.name, punishmentcontent));}}

public class universityteacher : yteacher

/// /// 隱藏父類的同名方法,隱藏後該類只能訪問隱藏後的方法,不能訪問到父類的該方法了。

///

public new void toteachstudents()

老師教育同學們:認真學習.net!", this.name));

}/// /// 覆蓋

///

public override void punishmentstudents(string punishmentcontent)

}

using system;

namespace yys.csharpstudy.mainconsole}}

結果:

子類繼承父類的方法,使用new修飾乙個同父類方法同名,引數列表相同的新方法的過程就叫做隱藏。也就是子類隱藏了父類的這個方法。不過隱藏與覆蓋不同,隱藏的方法只能通過該方法所在的類訪問,如果使用父類的變數,依然訪問的是被隱藏的方法。

從上面的**中可以看到,覆蓋和隱藏的區別。父類變數引用子類例項後,只能訪問被隱藏的方法,而無法訪問隱藏後的方法。但是都可以訪問到覆蓋後的方法。

還有一點就是如果想讓這個方法被子類覆蓋,那麼父類該方法必須加上virtual。隱藏父類的方法new關鍵字也可以不加。隱藏一般使用的比較少,在一些特殊的情況下解決一些問題。

C 基礎知識整理 基礎知識(2) 類

類,是物件導向語言的基礎。類的三大特性 封裝 繼承 多型。最基本的特性就是封裝性。程式設計師用程式描述世界,將世界的所有事物都看成物件,怎麼描述這個物件?那就是類了。也就是用類來封裝物件。用書上的話說,類是具有相同屬性和行為的物件的抽象。寶馬汽車 別克汽車 五菱之光汽車.基本具有相同的屬性和行為,所...

C 基礎知識整理 基礎知識(2) 類

類,是物件導向語言的基礎。類的三大特性 封裝 繼承 多型。最基本的特性就是封裝性。程式設計師用程式描述世界,將世界的所有事物都看成物件,怎麼描述這個物件?那就是類了。也就是用類來封裝物件。用書上的話說,類是具有相同屬性和行為的物件的抽象。寶馬汽車 別克汽車 五菱之光汽車.基本具有相同的屬性和行為,所...

C 基礎知識整理

在c 98中,有63個關鍵字。不能遺漏標準名稱,任何不帶標準名稱來說關鍵字個數都是耍流氓 1.定義命名空間,需要用到namespace關鍵字,後面跟命名空間的名字,然後接 中即為命名空間的成員。2.命名空間的使用 namespace n int main using n b int main usi...