C#抽象類,
- 抽象類使用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();
}
}
}
上面注釋的代碼,和沒有注釋的代碼,執行的效果是一樣的。