我发现C#非常有趣......但不幸的是(或幸运!)它有许多功能来实现OOP规则....他们有不同的机制及让我时而迷糊....
虚拟的,新的,...在C#改性剂有不同的规则....那么什么是学习OOP规则最好的办法还是最佳做法,方便地使用他们...?
那么,什么是学习OOP规则最好的办法还是最佳做法,方便地使用他们...?
我发现C#非常有趣......但不幸的是(或幸运!)它有许多功能来实现OOP规则....他们有不同的机制及让我时而迷糊....
虚拟的,新的,...在C#改性剂有不同的规则....那么什么是学习OOP规则最好的办法还是最佳做法,方便地使用他们...?
那么,什么是学习OOP规则最好的办法还是最佳做法,方便地使用他们...?
最好的学习方法是让事情变得简单和实践(程序)很多。 关于虚拟/新/覆盖,主要有三种情况:
虚拟+覆盖 - 在基类中使用虚拟和覆盖在派生类中,如:
class BaseClass { public void virtual Test(){...} } class DerivedClass: BaseClass { public void override Test(){...} }
抽象+倍率 - 这是与前面的情况,其中该基础构件不限定的主体的变体:
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
,如果可能的修改,因为它是有点混乱。
最好的办法是了解从OOP原则(封装,继承和多态) 的基本来源 。 再担心特定的语言实现更高版本。 一旦你真正了解基本概念,语言细节变得简单易学,应用和掌握。