C# 类(10) 抽象类.

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(); //子类创建的对象使用抽象类中的方法.
        }
    }
}
posted @ 2012-10-02 20:00  梦断难寻  阅读(453)  评论(0编辑  收藏  举报