- 抽象类使用abstract修饰符声明;
- 不能创建抽象类的实例;
- 抽象类只能用作其他类的基类;
- 抽象类中可以包含抽象成员和普通的非抽象成员;
- 抽象类自己可以派生自另外一个抽象类;
- 任何派生自抽象类的【类】,必须使用override关键字,实现该类所有的成员,除非派生类自己也是抽象类。
示例:
1.基类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 抽象类
{
public abstract class BaseClass
{
public void BaseMethod()
{
Console.WriteLine("我是抽象类中的非抽象方法");
}
public abstract void DrivedMethod();
}
}
2.子类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 抽象类
{
public class DrivedClass:BaseClass
{
public override void DrivedMethod()
{
Console.WriteLine("我是子类【派生类】中的重写方法");
//throw new NotImplementedException();
}
}
}
3.程序调用:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 抽象类
{
class Program
{
static void Main(string[] args)
{
//BaseClass baseClass = new DrivedClass();
//baseClass.BaseMethod();
//baseClass.DrivedMethod();
//Console.WriteLine();
//Console.ReadKey();
DrivedClass driveClass = new DrivedClass();
driveClass.BaseMethod();
driveClass.DrivedMethod();
Console.WriteLine();
Console.ReadKey();
}
}
}
上面注释的代码,和没有注释的代码,执行的效果是一样的。