//主的喂狗
class Program
{
static void Main(string[] args)
{
//我们来模拟一个主人养狗动物的例子 首先创建一个主人对象,同时主人买了条狗
//买来条狗,主人一喂,狗会吃东西
Person person = new Person();
Dog dog = new Dog();
person.feed(dog);//主人喂狗
}
}
// 主人类
class Person { //主人喂狗
public void feed(Dog dog) {
dog.eat();
}
}
//狗类
class Dog {
//狗吃东西动作
public void eat(){
Console.Write("狗吃东西"); }
}
//过了几天张三这哥们在市场上看到一只猫,又想喂猫了
class Cat {
public void eat() {
Console.Write("猫吃东西");
}
}
class Program
{
static void Main(string[] args)
{
//我们来模拟一个主人养狗动物的例子 首先创建一个主人对象,同时主人买了条狗
//买来条狗,主人一喂,狗会吃东西
Person person = new Person();
Dog dog = new Dog();
Cat cat = new Cat();
person.feed(dog);//主人喂狗
person.feed(cat);//主人喂猫
}
}
//又没过几天又看到一只兔子,又想养兔了
这时候我们是不是感觉程序有点不好扩展了
我们想既然是养动物,我们为何不创建个动物类了
class Anmail
{
//动物吃东西动作
public void eat(){
}
}
//到时候什么狗 猫 兔都继承 Anmail类就好了
//那么主人里面的可以这么写就好了
class Person { //主人喂狗
//主人喂动物
public void feed(Anmail anmial)
{
anmial.eat();
}
}
//主程序可以这么写了
class Program
{
static void Main(string[] args)
{
Person person = new Person();
Anmail an= new Dog();( 养狗 养猫) // Anmail an= new Cat()
person.feed(an);//主人喂狗或主人喂猫
}
}
//写到这里是不是稍微感觉到多态的好处了,当然这只是一个小例子
下面说下 Anmail an= new Dog()
这个就是父只向子