best way or best-practices for learning OOP rules

2019-04-17 04:09发布

I found C# very interesting...but unfortunately (or fortunately ! ) it has many features to implement OOP rules....they have different machanisms and make me sometimes confused....

virtual, new,... modifiers in c# have different rules....so what is the best way or best-practices for learning OOP rules and use them easily...?

so what is the best way or best-practices for learning OOP rules and use them easily...?

标签: c# oop
2条回答
我命由我不由天
2楼-- · 2019-04-17 04:33

The best way to learn is to keep things simple and practice (program) a lot. Regarding virtual/new/override, there are three main cases:

  1. Virtual + override - Use virtual in the base class and override in the derived class, as in:

    class BaseClass  
    {      
         public void virtual Test(){...}  
    }  
    class DerivedClass: BaseClass  
    {  
        public void override Test(){...}  
    }
    
  2. Abstract + override - This is a variant of the previous case where the base member does not define a body:

    abstract class BaseClass
    {
        public void abstract Test(){...}
    }
    class DerivedClass: BaseClass
    {
        public void override Test(){...}
    }
    
  3. No modifier - This is useful when you don't plan on overriding a method:

    class BaseClass
    {
        public void Test(){...}
    }
    class DerivedClass: BaseClass
    {
        public void OtherMethod(){...}
    }
    

    In the this case, there would be a warning if OtherMethod was named Test. Indeed, it would clash with the base method. You can get rid of the warning by adding a new modifier as in

    abstract class BaseClass
    {
        public void Test(){...}
    }
    class DerivedClass: BaseClass
    {
        public new void Test(){...}
    }
    

    However, I would recommend avoiding the new modifier if possible since it is somewhat confusing.

查看更多
祖国的老花朵
3楼-- · 2019-04-17 04:46

Your best bet is to learn about OOP principles (encapsulation, inheritance and polymorphism) from a fundamental source. And then worry about particular language implementations later. Once you really understand the fundamental concepts, the language specifics become easy to learn, apply and master.

查看更多
登录 后发表回答