////// 抽象类:动物 /// public abstract class Animal { protected string type; protected int speed; public string Type => type; public int Speed => speed; public abstract void Talk(); public abstract void Eat(); public abstract void Love(); public override string ToString() { return type; } }
////// 实现类:猫 /// public class Cat:Animal { public Cat(string type,int speed) { this.type = type; this.speed = speed; } public override void Talk() { System.Console.WriteLine("喵喵"); } public override void Eat() { System.Console.WriteLine("吃鱼"); } public override void Love() { System.Console.WriteLine("捉老鼠"); } }
////// 实现类:狗 /// public class Dog:Animal { public Dog(string type, int speed) { this.type = type; this.speed = speed; } public override void Talk() { System.Console.WriteLine("汪汪"); } public override void Eat() { System.Console.WriteLine("吃肉"); } public override void Love() { System.Console.WriteLine("狩猎"); } }
using System;
namespace _3_1 {
class Program {
static void Main(string[] args) {
Animal cat = new Cat("波斯猫", 30);
Animal dog = new Dog("猎犬", 60);
//调用行为
cat.Talk();
cat.Eat();
cat.Love();
//调用行为
dog.Talk();
dog.Eat();
//dog.Love();
输出属性,重载ToString
PrintPropertys(cat);
PrintPropertys(dog);
比较
Console.WriteLine($"速度更快的是:{(cat.Speed > dog.Speed ? cat.Type : dog.Type)}");
Console.ReadLine();
}
static void PrintPropertys(Animal animal) {
Console.WriteLine($"类型:{animal.Type}, 速度:{animal.Speed}");
}
}
}
运行结果:



