using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
#region 概述
//定义了一个Animal类,Animal类派生了两个子类:dog和cat。
//Animal类有一个抽象方法Bark。抽象方法是指,继承于本抽象类的派生类都必须自己实现这个方法。
//抽象方法只是一个声明,没有方法体,包含抽象方法的类一定要为抽象类。
//由于Bark是抽象方法,dog和cat继承于抽象类Animal,因此它们都必须要实现自己的Bark方法。
#endregion
namespace 抽象类_重写_继承
{
class Program
{
static void Main(string[] args)
{
//狗叫,猫叫
//抽象类是不允许创建对象的
//Animal animal = new Animal();//这是错的
Animal dog = new dog();
dog.Bark();
Animal cat = new cat();
cat.Bark();
//也可以这么写
dog d = new dog();
d.Bark();
Console.ReadKey();
}
}
public abstract class Animal
{
public abstract void Bark();//在抽象类中,要有抽象方法并且没有主体!
}
public class dog : Animal//dog继承与Animal,Animal派生于dog类,dog是Animal的派生类,都一个意思
{
public override void Bark()//override重写抽象方法
{
Console.Write("汪汪叫\n");
}
}
public class cat : Animal
{
public override void Bark()
{
Console.Write("喵喵叫\n");
}
}
}