js的多态的经典案例
<script type=”text/javascript”>
// Master类
function Master(name){
this.nam=name;
//方法[给动物喂食物]
}
//原型法添加成员函数
Master.prototype.feed=function (animal,food){
window.alert(“给”+animal.name+” 喂”+ food.name);
}
function Food(name){
this.name=name;
}
//鱼类
function Fish(name){
this.food=Food;
this.food(name);
}
//骨头
function Bone(name){
this.food=Food;
this.food(name);
}
function Peach(name){
this.food=Food;
this.food(name);
}
//动物类
function Animal(name){
this.name=name;
}
//猫猫
function Cat(name){
this.animal=Animal;
this.animal(name);
}
//狗狗
function Dog(name){
this.animal=Animal;
this.animal(name);
}
//猴子
function Monkey(name){
this.animal=Animal;
this.animal(name);
}
var cat=new Cat(“大花猫”);
var fish=new Fish(“黄花鱼”);
var dog=new Dog(“大花狗”);
var bone=new Bone(“猪骨头”);
//创建一个主人
var master=new Master(“Admin”);
master.feed(dog,bone);
//扩展
var monkey=new Monkey(“金丝猴”);
var peach=new Peach(“仙桃”);
master.feed(monkey,peach);
</script>
总结:多态有利于代码的维护和扩展,这里我们可以考虑,如果食物 加入
桃子,动物加入 猴子,可以看到,Master的feed函数不需要的变化。