今天主要说一下基类中的方法和属性,既然把这东西放进了基类,那有一点可以肯定的是,它们是公用的,这种公用的实现可能由基类自己实现,也可能是子类去实现,对于这句话,会有三种情况:(以方法以例)
1 基类中的方法,对于所有子类都是一样的,并且子类不能修改这个方法,这时,我们的方法这样定义
1 protected void CannotModifyMethod()2 {3 ...4 }
2 基类中的方法,对于所有子类都是一样的,但子类可能根据自己的逻辑,去实现自己那块业务,这时,我们的方法这样定义
1 protected virtual void OverrideMethod()2 {3 ...4 }
3 基类中的方法,完成由子类去实现,每个子类都有自己的业务逻辑,基类本身不能控制它,这时,我们的方法这样定义
1 protected abstract void AbstractMethod();
OK,对于基类中出现的方法大体就这三种情况,我们在设计基类时,一定要根据实际情况去选择最佳的方法,而不要动不动virtual,时不时就来个abstract,当你使用每一个修饰符时,都应该明确知道它的含义,及你为什么要使用它,这样才能把程序写的更加完美,另一方面也能看出你的程序是否“真正的面向对象”!
下面的图像,展现了一个操作基类的CURD操作,它们都是virtual的,为什么?因为它们是可以被子类根据自己的逻辑去覆写的。
感谢您的阅读!