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修饰符。