c++Lab-虚函数
里氏转换原则
原文是派生的子类可以用于直接替代其基类
这个是一个很有意思也很常用的原则,当然也很重要,一般在面向对象设计里面我们最常看到的就是策略模式
//c#
interface IMonster{
void run()
}
class Skeleton: IMonster{
override void run(){
Console.WriteLine("im Skeleton");
}
}
class Ogre:IMonster{
override void run(){
Console.WriteLine("im Ogre");
}
}
void main(){
IMonster mt;
mt = new Skeleton();
mt.run();
mt = new Ogre();
mt.runt();
}
策略模式的大致意思就是这样,策略的实现过程可以交给很多人写,主城只需要定义一个策略的实现接口,然后由策划提需求,分配任务的程序员自动实现run逻辑,然后在main中根据条件实例出接口,比如你在刷骷髅的副本,则实例Skeleton对象,如果你在刷食人魔的副本,则实例Ogre的对象
这是一个多态的基本用法,类似的操作你可以使用virtural,也