Home [C# 筆記] new 關鍵字
Post
Cancel

[C# 筆記] new 關鍵字

關鍵字new的隱藏父類

new 兩個作用

  1. 創建物件
  2. 隱藏從父類繼承過來的「同名成員」

    隱藏的結果,子類調不到父類的成員

創建物件/對象

1
Student reporter = new Student();

隱藏從父類繼承過來的「同名成員」

在子類中,與父類同名的方法上加上new

1
public new void SayHello() { ... }

沒有加上 new 關鍵字,程式會警告提示:
「Student.SayHello()’ 會隱藏繼承的成員 ‘Person.SayHello()’。
若本意即為要隱藏,請使用 new 關鍵字。」

1
2
3
4
5
6
7
8
9
public class Student {
    //沒有加上new 關鍵字,程式會警告提示:....若本意即為要隱藏,請使用 new 關鍵字
    public void SayHello() { ... }
}

//父類
public class Person {
    public void SayHello() { ... }
}

結論

在繼承當中,儘量不要使用到 new 去隱藏父類的成員
子類也儘量不要寫跟父類同名的成員,不然會調用不到。

This post is licensed under CC BY 4.0 by the author.

[C# 筆記] Inherit 繼承

[C# 筆記] this base new 關鍵字