using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace _03动物类{ class Program { static void Main(string[] args) { //实现多态:声明父类去指向子类对象 //把子类赋值给父类,这叫里氏替换 Animal[] a = { new Cat(), new Dog(), new Pig() }; for (int i = 0; i < a.Length; i++) { a[i].Bark(); //父类提供普通函数,子类直接继承过去 a[i].Drink(); a[i].Eat(); } Console.ReadKey(); } } abstract class Animal { //抽象函数 //抽象成员只能存在与抽象类中 public abstract void Bark();//普遍类不能出现抽象成员 //public abstract void Eat(); //public abstract void Drink(); public void Eat() { Console.WriteLine("动物可以舔着吃"); } public void Drink() { Console.WriteLine("动物可以舔着喝"); } } //子类继承抽象父类,必须重写所有父类的抽象成员 class Cat : Animal { public override void Bark() { Console.WriteLine("猫咪瞄瞄的叫"); } //public override void Drink() //接口 则终于 能力 //{ // Console.WriteLine("喵咪舔着吃"); //} //public override void Eat() //{ // Console.WriteLine("猫咪舔着喝"); //} } class Dog : Animal { public override void Bark() { Console.WriteLine("狗狗汪汪的叫"); } } class Pig : Animal { public override void Bark() { Console.WriteLine("猪猪哼哼的叫"); } }}