#技术岗面试题求解#浅试一下,override和overload的区别,如果子类不override会发生什么,编译器怎么实现的多态
全部评论
override和overload的区别在于,override是指子类重写父类的方法,方法名、参数列表和返回值类型都必须与父类方法相同,而overload是指在同一个类中,方法名相同但参数列表不同的多个方法。
如果子类不override父类的方法,则子类将继承父类的方法,即使用父类的方法。
编译器实现多态的方式是通过虚函数表(vtable)和虚函数指针(vptr)来实现的。当一个类中包含虚函数时,编译器会为该类生成一个虚函数表,其中存储了该类中所有虚函数的地址。同时,编译器会在该类的对象中添加一个虚函数指针,指向该对象所属的类的虚函数表。当调用一个虚函数时,编译器会通过虚函数指针找到该对象所属的类的虚函数表,并根据函数名在虚函数表中查找对应的函数地址,然后调用该函数。这种方式可以实现动态绑定,即在运行时根据对象的实际类型来确定调用哪个函数,从而实现多态。
这是你面试时被问到的问题?
相关推荐
12-03 19:04
门头沟学院 前端工程师
FOX2003:还没学后端框架吧,看你第一个项目用的mockjs。第一个项目太老而且可能是从github上扒的(我的课设就是这个),第二个主要依靠AI的能力,而且前端项目找前端实习的话,留个github地址好点,主要还是前端要求越来越高了。另外,去***看看,符合就投,boss投的多,HR工作量就大,没功夫多聊 点赞 评论 收藏
分享
斯卡蒂味的鱼汤:知道你不会来数马,就不捞你😂最近数马疯狂扩招,招聘要求挺低的,你能力肯定够,应该就是因为太强了,知道你不会来才不捞你 点赞 评论 收藏
分享