关于面向对象中继承机制的一个问题。java/c#/c++。题目如图所示。谢谢

看42和43。书上给的答案是C和B。有点疑惑,P和Q都继承自O,那么O中的公有的F2和受保护的F3应该都可以访问呀。为什么会有答案中描述的限制呢?还是C++/java/C... 看42和43。书上给的答案是C和B。有点疑惑,P和Q都继承自O,那么O中的公有的F2和受保护的F3应该都可以访问呀。为什么会有答案中描述的限制呢?
还是C++/java/C#中关于继承的权限方面有区别?
谢谢
展开
 我来答
chenluyao0629
2013-10-27 · TA获得超过820个赞
知道小有建树答主
回答量:538
采纳率:50%
帮助的人:408万
展开全部
C++/java/C#中关于继承的权限没有区别,你其实理解了
只是注意说法:在P内能访问,和P的对象能访问,如果一个方法在P内是私有的,在P内是能访问的,P的对象是不能访问的,所以42选c

class A
{
public:
int x;
protected:
int y;
private:
int z;
};

class B : public A
{
// x is public
// y is protected
// z is not accessible from B
};

class C : protected A
{
// x is protected
// y is protected
// z is not accessible from C
};

class D : private A
{
// x is private
// y is private
// z is not accessible from D
};
zjnny
2013-10-26 · TA获得超过2037个赞
知道小有建树答主
回答量:1055
采纳率:100%
帮助的人:1063万
展开全部
自己写3个类把这种描述实现一遍,帮助理解

类内定义权限和继承权限,自己看看书上的权限表格
注意题目中"对象"和"类内"这2个词,理解问题的关键
虽然没认真学过3种语言,但是这方面的权限似乎没区别,只是写法有变化
对象调用func3 O o; o.func3();这个是对应的具体对象o
类内调用func2 O::func3(){func2()};这个func2却是在实现中调用(类内调用),和题目中的对象调用有区别的
类内可以调用私有,但是对象却不可以调用私有
仔细对照下protect继承引起的变化,编写程序用程序验证自己的想法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式