C#:通过继承隐藏实现是否可以?

时间:2016-05-03 00:18:02

标签: c# oop inheritance

鉴于我有以下代码:

loop

在不实际使用class ITEM: SUB_ITEM_1 =1 SUB_ITEM_2 = form.widget() 关键字的情况下覆盖/隐藏基类的行为是一种好习惯吗?下面的代码中是否有任何隐藏的陷阱?

interface IBase {
    void DoStuff(double x, double y);
}

class Base : IBase {
    public void DoStuff(double x, double y) { Console.WriteLine(x + y); }
}

在这里使用override关键字是否更好?像这样:

class Derived : Base {
    public void DoStuff(double x, double y) { Console.WriteLine(x * y); }
}

1 个答案:

答案 0 :(得分:5)

  

在不实际使用override关键字的情况下覆盖/隐藏基类的行为是一个好习惯吗?

不能“覆盖”基本方法,因为它不是virtual。你可以做的就是隐藏它。它很少是一种“良好的做法”,但没有任何东西可以阻止它,所以它是否“好”是非常具有背景性。

  

在这里使用新关键字会更好吗?

使用new不会改变最轻微的功能。关键字在那里,以便您可以显式地告诉编译器“我知道我隐藏了一个基本成员”。无论您是否使用new,行为都是相同的。