请高人指点一二(06年的一道软考题)

来源:百度知道 编辑:UC知道 时间:2024/07/03 05:14:57
已知3个类O,P,Q,类O中定义了一个私有方法F1,一个公有方法F2和一个受保护的方法F3;类P和类Q是O的派生类。其继承方式如下:
class p :protected O{......}
class Q : public O{......}

关于方法F1的描述中正确的是___(34)___;关于方法F2韵描述中正确的是___(35)___;关于方法F3的描述中正确的是___(36)___。
(34)A.方法F1无法被访问 B.只有在类O内才能访问方法F1
C.只有在类P内才能访问方法F1 D.只有在类Q内才能访问方法F1
(35)A.类O、P和Q的对象都可以访问方法F2 B.类P和Q的对象都可以访问方法F2
C.类0和Q的对象都可以访问方法F2 D.只有在类P内才能访问方法F2
(36)A.类0、P和Q的对象都可以访问方法F3 B.类0、P和Q的对象都不可以访问方法F3
C.类0和Q的对象都可以访问方法F3 D.类P和Q的对象都可以访问方法F3。
这是2006年的软考题,不知答案为什么选 B C B

首先,你的题貌似是C++题,而不是C#题目~~

34,A肯定是不对的,而派生类只能进一步的限制但不能放松对所继承的成员的访问,因此只有B对。

35,protected继承的结果是修改public和protected成员为protected成员,而protected成员的特性是,像private成员一样不能被类的对象直接访问,因此P无法访问F2方法

36,选择B的理由同35题

34是B吧,其他类都无法访问
35是C吧
36是···你后面有答案的?···我刚才还做了···看到36才看见
最后一个是B???这个可能是因为要在类内才可以访问吧,不是对象
你这个继承方式我在C#好像没看见过···
class Q : public O{......}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Temp
{
class Program
{
static void Main(string[] args)
{
B b = new B(); //好像这个b对象无法调用受保护的方法,但是类本身是可以的
}
}

class A
{
protected void a()
{
Console.WriteLine("a");
}
}

class B : A
{
public B()
: base()
{
}
public void b()
{
a();
}
}
}

34 私有方法只能被本类访问,派生类是不能访问的。
35 class Q : p