我发现C#非常有趣......但遗憾的是(或幸运的是!)它有很多功能来实现OOP规则....它们有不同的机制,让我有时会感到困惑....
c#中的virtual,new,...修饰符有不同的规则....那么学习OOP规则并轻松使用它们的最佳方法或最佳实践是什么?那么学习OOP规则并轻松使用它们的最佳方法或最佳实践是什么??
答案 0 :(得分:3)
最好的学习方法是保持简单和练习(程序)很多。 关于虚拟/新/覆盖,有三种主要情况:
虚拟+覆盖 - 在基类中使用virtual并在派生类中覆盖,如:
class BaseClass
{
public void virtual Test(){...}
}
class DerivedClass: BaseClass
{
public void override Test(){...}
}
Abstract + override - 这是前一种情况的变体,其中基本成员没有定义正文:
abstract class BaseClass
{
public void abstract Test(){...}
}
class DerivedClass: BaseClass
{
public void override Test(){...}
}
无修饰符 - 当您不打算覆盖方法时,这非常有用:
class BaseClass
{
public void Test(){...}
}
class DerivedClass: BaseClass
{
public void OtherMethod(){...}
}
在这种情况下,如果OtherMethod
被命名为Test
,则会出现警告。实际上,它会与基本方法发生冲突。您可以通过在
new
修饰符来消除警告
abstract class BaseClass
{
public void Test(){...}
}
class DerivedClass: BaseClass
{
public new void Test(){...}
}
但是,我建议尽可能避免使用new
修饰符,因为它有些令人困惑。
答案 1 :(得分:2)
最好的办法是从fundamental source了解OOP原则(封装,继承和多态)。然后担心以后的特定语言实现。一旦您真正理解了基本概念,语言细节就变得易于学习,应用和掌握。