抽象类
- 在一个类前面加上abstract关键字,此类就成为了抽象类。
- 在一个方法前面加上abstract关键字,此方法就成为了抽象方法。
abstract class Fruit //抽象类
{
public abstract void GrowInArea(); // 抽象方法
}
- 抽象方法不包容任何实现代码。
- 无法使用new关键字直接创建抽象类的对象。
- 包含抽象方法的类一定是抽象类,但抽象类中的方法不一定是抽象方法,抽象类中可以包容“普通的”方法。
实例背景
- 中国的南方、北方均可以种植苹果
- 菠萝是一种亚热带水果,主要在中国的南方种植
抽象类的定义
// 定义抽象基类
abstract class Fruit
{
public abstract void GrowInArea;
}
// 苹果
class Apple:Fruit
{
public override void GrowInArea()
{
Console.WriteLine("我是苹果,南方北方都能种");
}
}
// 菠萝
class Pineapple:Fruit
{
public override void GrowInArea()
{
Console.WriteLine("我是菠萝,只能种在南方");
}
}
“抽象类”怎么用?
- 不能创建抽象基类的对象,只能用它来引用子类的对象。
Fruit f = new apple();
相同的语句,在不同的环境下执行,得到不同的结果,这就是“多态”的一种具体表现形式。