抽象类和抽象方法

      在C#中可以定义抽象类作为基类。抽象类是指只能作为基类使用的类。抽象类用于创建派生类,本身不能实例化,也就是不能创建对象。抽象类使用关键字absteract修饰。

      抽象类定义格式如下: 

abstract class 类名
{
       类成员定义
}

       抽象类中的成员可以是抽象成员,也可以是非抽象成员。可以从抽象类派生新的抽象类,也可以派生出非抽象类。如果派生类是非抽象类,那么该派生类必须实现基类中所有抽象成员。

      

       抽象方法:

                 抽象方法只存在于抽象类的定义中,非抽象类中不能包含抽象方法

                 抽象方法的定义格式为:

             访问修饰符 abstract 返回值类型 方法名(参数表);

                   抽象方法使用关键字abstra修饰,只需要给出方法的函数头部分,一分号结算。注意,抽象方法不包含实现部分,没有函数的花括号部门。如果给出花括号,则出错。

         抽象类与抽象方法实例:

 class Program
    {
        static void Main(string[] args)
        {
            S s1 = new S();
            s1.Test(3);
            Console.ReadKey();
        }
    }
    abstract class T
    {
        public abstract void Test(int x);
    }
    class S : T
    {
        public override void Test(int x)
        {
            Console.WriteLine($"x={x}");
        }
    }

         程序输出结果为: x=3;

       派生类S中需要重写抽象类中的抽象方法Test,因此使用override关键字。注意,类T是抽象类。如果使用new T(),将出错。

      如果希望基类中的一个方法要包含在所有派生类中,可以将基类定义为抽象类,将该方法定义为抽象方法,则基类的所有派生类的所有派生类的定义中都必须重写实现该方法。

        

 

posted @ 2017-12-07 14:18  刘靖凯  阅读(466)  评论(0编辑  收藏  举报