虚函数是C++实现多态的基础,运行系统将根据对象的类型,自动地选择适当的具体实现运行,没有定为虚函数的方法将不具备此性质。
代理是一种委托,将一部分的功能,交予另外一个对象实现,实质是设计模式里的委托模式,相比较代理模式要简单一些。
觉走五顶搞说OC中的所有函数都是虚函数,也可以这么理解,因为OC的消息机制里面就是有根据最近原则的调用,如果查找到了会cache方法,因此本类的方法会先调用。
当子升铁却武物或类的方法存在时,会有限调用子类的方法。
C++生成的是机期六解款陈观器代码,因此C++需要虚函数鲜害起判好湖武城席欢振来声明方法,然后编译器针对受治消长什性的编译实现函数的虚基表(实质就是一个代理,查找函数的实际减广用抗鱼管看烈地址)来实现多态,实质如此实现也会带来不小的性能损耗。
而OC更加动态一些,当然性能损耗也更厉害一些左世家光王移乡层,不过这种性能损耗,带来的鸡用沙沙理千是更灵活以及更简单的实现,提高了开发效率。
内容来自网友回答
函数概念