C# abstract抽象类的使用

一.简介

  abstract意思是抽象。在C#中,abstract修饰符只用在两个地方,一是修饰类,二是修饰方法。被abstract定义的类或方法,叫做抽象类或抽象方法。

  在将abstract修饰符的用法时,可以直接讲抽象类的用法,因为抽象方法必须存在于抽象类之中。

二.例子 

public abstract class A
{
    public abstract void Func();

    public void Func2()
    {
        Console.WriteLine("A");
    }
}

public class B : A
{
    public override void Func()
    {
        Console.WriteLine("B");
    }
}

   从上面可以看出来,A类是抽象类,里面带着个抽象方法Func。B类继承了A类,并通过override重写实现了Func方法。

  这样定义一个抽象类的好处是,如在A类中定义的抽象方法Func,由于是抽象的,所以继承了A类的派生类都必须重写去实现这个方法,能够给其子类一定的约束,类似接口。

  抽象类的使用场景应该是,如果设计一个类的目的是用来被其它类继承,它代表一类对象所具有的公共属性和方法,那就可以设置为抽象类。

三.总结

  1.包含抽象方法的类都是抽象类,该类必须加abstract修饰。

  2.抽象类中不必一定包含抽象方法,此时在抽象类的方法必须是静态方法。

  3.抽象类不能实例化,但仍然可以具有构造函数。

  4.在实现抽象类时,子类必须实现抽象类中声明的抽象方法。

  5.抽象类中可以包含非抽象的方法。

  6.继承的子类没实现其中的抽象方法,那么这个子类也是抽象类。

  7.抽象方法也是虚拟的,但不需要使用virtual关键字。

  8.抽象类不能被sealed密封。

  9.在抽象方法声明中不能使用static修饰符。

  

原文地址:https://www.cnblogs.com/shadoll/p/14491693.html