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(); //子类创建的对象使用抽象类中的方法.
}
}
}