using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 抽象方法
{
//包含抽象方法的类一定是抽象类,但抽象类中的方法不一定是抽象方法。
abstract class Fruit //在一个类前面加上“abstract”关键字,此类就成为了抽象类。注意抽象方法不能有实现代码,在函数名后直接跟一个分号。抽象类专用于派生出子类,子类必须实现抽象类所声明的抽象方法,否则,子类仍是抽象类。
{
public abstract void GrowInArea();
}
class Apple : Fruit
{
public override void GrowInArea() //注意上述代码中的override 关键字,这说明子类重写了基类的抽象方法。
{
Console.WriteLine ("你好我是苹果");
}
}
class Pineapple : Fruit
{
public override void GrowInArea()
{
Console.WriteLine ("你好我是菠萝");
}
}
class Program
{
static void Main(string[] args)
{
/*
Fruit a = new Apple();
a.GrowInArea();
Fruit p = new Pineapple();
p.GrowInArea();
*/
Fruit f; //抽象类不能创建对象,一般用它来引用子类对象。
f = new Apple();
f.GrowInArea(); //注意同一句代码“f.GrowInArea();”会由于f 所引用的对象不同而输出不同的结果。可以看到,代码运行结果类似于上一节介绍的“虚方法调用”,两者没有本质差别。
f = new Pineapple();
f.GrowInArea();
Console.ReadKey();
}
}
}
抽象方法
最新推荐文章于 2022-10-19 10:01:19 发布