using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { //定义一个抽象类. abstract class MyClass // abstract关键字表示抽象类. 抽象类不能直接创建对象. { public abstract void ShowMessage(); //抽象方法只能包含在抽象类中. 但是抽象方法不能有实现过程,必须在子类中实现. public void SHowMessage() // 抽象类中也可以包含非抽象方法. { Console.WriteLine("我是非抽象的方法"); } public static void SHOmessage() // 甚至可以包含静态方法. { Console.WriteLine("我是静态方法."); } } //定义上面抽象类的子类. class MyClass1 : MyClass { //实现父类的抽象方法. public override void ShowMessage() // 实现抽象方法要添加override关键字. { Console.WriteLine("我是继承的子类,我实现了父类的抽象方法."); } } /// <summary> /// /////////////////////// /// </summary> class Program { static void Main(string[] args) { //MyClass My = new MyClass(); // 错误的 MyClass1 MY = new MyClass1(); // 正确的,通过子类创建对象. MyClass.SHOmessage(); // 虽然抽象类不可以创建对象,但是它的静态方法还是可以直接调用的. MY.ShowMessage(); //子类创建的对象使用抽象类中的方法. } } }