转载:C#里的一些关键字, sealed, abstract, virtual,
参考:Abstract and Sealed Classes and Class Members (C# Programming Guide).
public abstract class A
{
// Class members here.
}
abstract :必须被继承.
public abstract class A
{
public abstract void DoWork(int i);
}
abstract class 里也可包含abstract 方法, 但方法就没有{}, 因为abstract 方法不可以有内容. 继承abstract class 的class 内部必须定义那些abstract 方法, 给他真正的含义.
// compile with: /target:library
public class D
{
public virtual void DoWork(int i)
{
// Original implementation.
}
}
public abstract class E : D
{
public abstract override void DoWork(int i);
}
public class F : E
{
public override void DoWork(int i)
{
// New implementation.
}
}
virtual:儿子类看不到的方法, 也就是说不想让儿子看到的方法.
public sealed class D { // Class members here. } sealed:sealed class 不可以做base class,也就是说不可以被继承.当然也不可以和abstract 同时出现, 因为正好互相抵触.