- 抽象类不能实例化,抽象方法不能有代码实现
- 子类必须实现基类的抽象方法,若子类仍为抽象类除外
- 抽象方法必须在抽象类中,抽象方法不能申明为 private
- abstract 与 override 搭配
- 抽象类构造函数应为 protected 或 private
virtual与 abstract
当子类需要实现共同的方法时,用 virtual,在子类使用 base.method() 调用当子类需要实现不用方法时,用 abstract
abstract class A
{
protected string _name;
// 构造函数必须为 protected 或 private
protected A() {}
// 构造函数不为abstract ,且可以有代码实现
protected A(string name)
{
_name = name;
}
// abstract 方法不能有代码实现
public abstract void f();
protected int _x;
// abstract 属性不能有代码实现
public abstract int X
{
get;
set;
}
}
class B : A
{
// 子类继承构造函数
public B(string name) : base(name) { }
//子类重载实现方法
public override void f()
{
}
//子类重载实现属性
public override int X
{
get
{
return _x;
}
set
{
_x = value;
}
}
}
本文详细介绍了抽象类与抽象方法的概念及使用方法,并对比了抽象方法与虚方法的区别。阐述了如何通过抽象类定义接口规范,以及子类如何实现这些抽象方法。同时,文章还解释了抽象属性的概念。

被折叠的 条评论
为什么被折叠?



