gpt4 book ai didi

c++ - 多态和继承有什么区别

转载 作者:行者123 更新时间:2023-11-30 01:50:45 25 4
gpt4 key购买 nike

我对继承和多态的概念感到困惑。我的意思是,代码重用性和函数覆盖之间有什么区别?是不可能使用继承概念重用父类函数,还是不可能使用多态性覆盖父类变量。对我来说似乎没什么区别。

 class A
{
public:
int a;
virtual void get()
{
cout<<"welcome";
}
};

class B:public A
{
a =a+1; //why it is called code reuse
void get() //why it is called overriding
{
cout<<"hi";
}
};

我的疑问是代码重用和函数覆盖之间的区别。

最佳答案

让我们从您的示例开始。

class A
{
public:
int a;
virtual void get()
{
cout<<"welcome";
}
};

class B:public A
{
a =a+1; //why it is called code reuse
void get() //why it is called overriding
{
cout<<"hi";
}
};

继承:这里是从类 A 派生类 B,这意味着您可以访问它的所有公共(public)变量和方法。

a = a + 1

在这里你使用了 class A 的变量 a,你在 class B 中重用了变量 a从而实现代码的可重用性。

多态性处理程序如何根据它必须执行的事情调用方法:在您的示例中,您正在重写 class A 的方法 get()B 类 的方法get()。因此,当您创建 B 类实例并调用方法 get 时,您将在控制台中得到 'hi' 而不是 'welcome'

关于c++ - 多态和继承有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27056215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com