#技术岗面试题求解#浅试一下,override和overload的区别,如果子类不override会发生什么,编译器怎么实现的多态
全部评论
override和overload的区别在于,override是指子类重写父类的方法,方法名、参数列表和返回值类型都必须与父类方法相同,而overload是指在同一个类中,方法名相同但参数列表不同的多个方法。
如果子类不override父类的方法,则子类将继承父类的方法,即使用父类的方法。
编译器实现多态的方式是通过虚函数表(vtable)和虚函数指针(vptr)来实现的。当一个类中包含虚函数时,编译器会为该类生成一个虚函数表,其中存储了该类中所有虚函数的地址。同时,编译器会在该类的对象中添加一个虚函数指针,指向该对象所属的类的虚函数表。当调用一个虚函数时,编译器会通过虚函数指针找到该对象所属的类的虚函数表,并根据函数名在虚函数表中查找对应的函数地址,然后调用该函数。这种方式可以实现动态绑定,即在运行时根据对象的实际类型来确定调用哪个函数,从而实现多态。
这是你面试时被问到的问题?
相关推荐
点赞 评论 收藏
分享
2025-12-28 16:32
重庆邮电大学 Java
程序员花海:1.技能放最后,来面试默认你都会,技能没啥用
2.实习写的看起来没啥含金量,多读读部门文档,包装下 接LLM这个没含金量 也不要用重构这种 不会给实习生做的
3.抽奖这个还是Demo项目,实际在公司里面要考虑策略,满减,触发点,触发规则 库存 之类的,不是这个项目这么简单
4.教育背景提前,格式为 教育背景 实习 项目 技能 自我评价 点赞 评论 收藏
分享
02-05 22:54
中北大学 前端工程师 点赞 评论 收藏
分享