刚刚看笔记觉得这两个概念有点模糊,然后仔细查了一下发现网上有很多误导性的解释,我现在加上自己的理解说一下。
1.多态
同一操作下作用于不同的类的实例时,将产生不同的执行效果。(Objective—C编程全解)
多态常常伴随着继承,比如动物类中有一个方法是叫,而他的子类:猫、狗,都有独特的方式,猫是喵喵,狗是汪汪,我声明一个对象调用动物的叫声的方法,指针指向哪个类就调用哪个类的方法,简单写了一个例子(子类中不需要再次声明):
在main中调用并显示执行结果
2.重载
指的是一个函数、运算符或方法定义有多种功能,并根据情况选择合适的功能。在许多语言中都适用,但是OC是动态语言,参数的类型是在运行时确定的,所以不支持这样根据参数类型不同来调用不同函数的重载(但是个数不同可以),OC可以通过动态绑定让同一个消息选择器执行不同的功能来实现重载。