C#中的抽象类

软件设计的开闭原则

开闭原则(OCP)是面向对象设计中“可复用设计”的基石,是面向对象设计中最重要的原则之一,其它很多的设计原则都是实现开闭原则的一种手段。对于扩展是开放的,对于修改是关闭的,这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为。也就是说,我们可以改变模块的功能。对模块行为进行扩展时,不必改动模块的源代码或者二进制代码。模块的二进制可执行版本,无论是可链接的库、DLL或者.EXE文件,都无需改动。(https://baike.baidu.com/item/开闭原则/2828775)
简单来说即:封装确定的,开放不确定的,不确定的功能推迟到合适的子类中实现

抽象类

  • 抽象类是未完全实现逻辑的类
  • 抽象类是完全当成基类来使用的,抽象类不能被实例化
  • 含有抽象方法的类一定是抽象类
  • 抽象类中可以有字段和非抽象方法
  • 抽象类仍然可以实现多态
  • 接口相当于纯抽象类
class Program
    {   
        static void Main(string[] args)
        {
            Vehicle v = new Car();
            v.Run();//打印出:Car is running!
            v.Stop(); //打印出:  Stop        
            Console.ReadKey();
        }
    }
  abstract class Vehicle
    {
        public int Age;
        public abstract   void Run();
        public void Stop()
        {
            Console.WriteLine("Stop");
        }
    }
    class Car : Vehicle
    {
        public override void Run()
        {
            Console.WriteLine("Car is running!");
        }
    }

猜你喜欢

转载自blog.csdn.net/weixin_41707267/article/details/84075535