简单的继承和多态问题???
简单的继承和多态问题,代码如下:
疑问:
1、为什么上述代码的输出结果是:2? —— 这个怎么解释,什么机制???
2、如果不添加virtual关键字,上述代码输出结果也是:2。 —— 这个倒是可以理解。
#include <iostream>
using namespace std;
class A {
public:
virtual void fun(int a = 2) { // 添加了virtual关键字
cout << a << endl;
}
};
class B : public A {
public:
void fun(int b = 1) {
cout << b << endl;
}
};
int main() {
A* a = new B();
a->fun();
return 0;
}疑问:
1、为什么上述代码的输出结果是:2? —— 这个怎么解释,什么机制???
2、如果不添加virtual关键字,上述代码输出结果也是:2。 —— 这个倒是可以理解。
...全文
相关推荐
一个实例告诉你什么是封装继承和多态
理解并熟练运用封装、继承和多态,能够帮助开发者编写出结构清晰、可扩展性强的代码,提升软件的性能和可维护性。在实际开发中,我们应充分利用这些特性来构建高效、灵活的面向对象系统。
java中继承与多态的题目
Java 中继承与多态的题目本资源摘要信息是关于 Java 中继承和多态的题目,涵盖了面向对象编程的基本概念和继承机制的应用。
关于继承和多态的简单练习
现在,让我们回到“关于继承和多态的简单练习”这个主题。在这个练习中,你可能创建了一些类,定义了它们之间的继承关系,并实现了多态的效果。
java 三大特性--封装、继承和多态理解
Java编程语言以其强大的功能和广泛的应用而闻名,其中三大特性——封装、继承和多态是其核心概念,对于理解和编写高效、可维护的代码至关重要。
Java中继承、多态、重载和重写介绍
继承带来了代码的复用和模块化,同时也支持了多态的概念。**多态** 是指一个接口或类可以在不同的上下文中表现出不同的形态。在Java中,多态通常通过方法重写(Override)和接口实现来实现。


