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 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();
}
}
更多精彩
赞助商链接