写代码时常常会碰到这样一种状况:想生成不一样实例,那就须要作多重if判断或者switch下n个case。编程
好比家畜这一种类,根据状况我可能须要一只鸭,也可能须要一头牛:bash
switch(家畜):
case 鸭:
提走一只鸭
break
case 牛:
牵走一头牛
break
...
...
复制代码
这样的问题是每次追加一种家畜就须要追加新的处理语句,也颇有可能在其余各处的判断语句也要一块儿改。ui
代码量增长后,这真的是一个很是很是麻烦的事情。编码
面向对象的程序设计理论中,多态是指:spa
同一操做做用于不一样的类的实例时,将产生不一样的执行结果。即不一样类的对象收到相同的消息时,也能获得不一样的结果。设计
多态替换的是面向过程编程里的switch或者多重if判断,让扩展变得更灵活,不须要多处改动。code
不一样的家畜咱们就建立成不一样的类,而后全都继承自一个base类,好比家畜类。对象
根据具体的状况,咱们须要获取的是鸭类的实例,也多是牛类的实例,这个就看具体的状况。以后则调用家畜类里的方法,或者本身定义的方法便可。继承
这样就不须要每次都重复作一次switch判断或者if判断。it
好比:
牛类实例 执行方法:检验
鸭类实例 执行方法:检验
(检验这个方法,则是它们共同的父类家畜类定义的)
复制代码