zoukankan      html  css  js  c++  java
  • 抽象类和抽象方法

          在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(),将出错。

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

            

     

  • 相关阅读:
    UVa 12174 (滑动窗口) Shuffle
    UVa 1607 (二分) Gates
    CodeForces ZeptoLab Code Rush 2015
    HDU 1525 (博弈) Euclid's Game
    HDU 2147 (博弈) kiki's game
    UVa 11093 Just Finish it up
    UVa 10954 (Huffman 优先队列) Add All
    CodeForces Round #298 Div.2
    UVa 12627 (递归 计数 找规律) Erratic Expansion
    UVa 714 (二分) Copying Books
  • 原文地址:https://www.cnblogs.com/ljknlb/p/7998851.html
Copyright © 2011-2022 走看看