面向对象总结

1. 为什么要用抽象类(abstract)?

    因为希望它能继承,但又不希望它能实例化(比如“动物”类实例化是没有意义的)。

2. 构造函数私有化

    不希望在其他类中通过 new 实例化一个实例(有些根本不能实例化,比如 Math 类;有些是类中专门提供了返回类对象的公有方法,比如单例模式)

3. 静态

    静态 + public:这就构成了全局访问

4. 虚方法 + 方法重写

    为了使子类的实例完全接替来自父类的类成员,父类必须将该成员声明为虚拟的。—— 在返回类型前加 virtual 关键字

    通常虚拟的是方法,但其实除了字段不能是虚拟的属性、事件和索引器都可以是虚拟的

    尽管方法可以是虚拟的,但虚方法还是有方法体的,可以实际做些事情

    然后,子类可以选择使用 override 关键字,将父类实现替换为它自己的实现,这就是方法重写

原文地址:https://www.cnblogs.com/zhangchaoran/p/8469207.html