关键字:
使用abstract关键字可以创建不完整且必须在派生类中实现的类和类的成员。
抽象类:
1、抽象类是特殊的类,只是不能被实例化;除此以外具有类的其他特性;
2、重要的是抽象类可以包括抽象方法,这是普通类所不能的;
3、抽象类中也可以编写非抽象方法;
4、抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖。
5、抽象父类申请成对象,不能构造成父类使用,只能构造子类来使用。
6、抽象类中可以包含构造方法,但是构造方法不能被声明为抽象;
7、抽象类不能被密封或者静态。
抽象方法:
1、抽象方法只能声明于抽象类中且不能包含任何实现,抽象方法只能由子类继承并实现才能使用,且子类必须实现它;
2、子类中覆写的抽象方法必须和父类的抽象方法要一一对应(返回类型、参数要一样);
3、声明抽象方法时,不能使用virtual、static、private、sealed修饰符;
4、在抽象类中抽象方法不提供方法体。
代码示例:
abstract class Father
{
public abstract void Function();
}
class SonA:Father
{
public override void Function()
{
Console.WriteLine("SonA");
}
}
abstract class SonB:Father
{
public override void Function()
{
Console.WriteLine("SonB");
}
}
class Gson:SonA
{
public override void Function()
{
Console.WriteLine("Gson");
}
}
class Program
{
static void Main(string[] args)
{
SonA sonA = new SonA();
Gson gson = new Gson();
sonA.Function();
gson.Function();
Console.ReadKey();
}
}
--->
SonA
Gson