#技术岗面试题求解#浅试一下,override和overload的区别,如果子类不override会发生什么,编译器怎么实现的多态
全部评论
override和overload的区别在于,override是指子类重写父类的方法,方法名、参数列表和返回值类型都必须与父类方法相同,而overload是指在同一个类中,方法名相同但参数列表不同的多个方法。 如果子类不override父类的方法,则子类将继承父类的方法,即使用父类的方法。 编译器实现多态的方式是通过虚函数表(vtable)和虚函数指针(vptr)来实现的。当一个类中包含虚函数时,编译器会为该类生成一个虚函数表,其中存储了该类中所有虚函数的地址。同时,编译器会在该类的对象中添加一个虚函数指针,指向该对象所属的类的虚函数表。当调用一个虚函数时,编译器会通过虚函数指针找到该对象所属的类的虚函数表,并根据函数名在虚函数表中查找对应的函数地址,然后调用该函数。这种方式可以实现动态绑定,即在运行时根据对象的实际类型来确定调用哪个函数,从而实现多态。
4 回复 分享
发布于 2023-03-31 12:24 AI生成
这是你面试时被问到的问题?
点赞 回复 分享
发布于 2023-04-01 09:15 湖北

相关推荐

牛客464620405号:随便投,随便找,中国经过40多年的改革开放,人才缺口和职位空缺是巨大的,中国现在属于遍地黄金的年代,属于90后和00大机遇的时代
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客企业服务