WEB开发网
开发学院软件开发C语言 C# 语法练习(12): 类[四] - 抽象类与抽象成员、密... 阅读

C# 语法练习(12): 类[四] - 抽象类与抽象成员、密封类与密封成员

 2009-02-23 08:16:48 来源:WEB开发网   
核心提示:抽象类不能直接实例化:using System;abstract class MyClass{}class Program{static void Main(){/* 抽象类不能直接实例化, 下面这样会出错 */MyClass obj = new MyClass();Console.ReadKey();}}但抽象类可以

抽象类不能直接实例化:

using System;

abstract class MyClass
{
  
}

class Program
{
  static void Main()
  {
    /* 抽象类不能直接实例化, 下面这样会出错 */
    MyClass obj = new MyClass();

    Console.ReadKey();
  }
}

但抽象类可以通过子类实例化:

using System;

abstract class Parent { }

class Child : Parent { }

class Program
{
  static void Main()
  {
    Parent obj = new Child();
    Console.WriteLine(obj.ToString()); //Child

    Console.ReadKey();
  }
}

抽象方法只能包含在抽象类中:

using System;

abstract class Parent
{
  /* 抽象方法是隐式的虚方法, 但不能用 static 或 virtual 修饰 */
  public abstract void Method1();

  /* 抽象类可以包含非抽象方法 */
  public void Method2() { Console.WriteLine("Method2"); }

  /* 甚至可以包含静态方法 */
  public static void Method3() { Console.WriteLine("Method3"); }
}

class Child : Parent
{
  /* 实现抽象方法要使用 override */
  public override void Method1() { Console.WriteLine("Method1"); }
}

class Program
{
  static void Main()
  {
    Parent.Method3();     // Method3
    Child.Method3();     // Method3

    Parent obj = new Child();
    obj.Method1();       // Method1
    obj.Method2();       // Method2

    Console.ReadKey();
  }
}

1 2  下一页

Tags:语法 练习 抽象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接