已知3个类O、P和Q,类O中定义了一个私有方法P1、一个公有方法F2和一个受保护的方法F3:类P和类Q是类O
已知3个类O、P和Q,类O中定义了一个私有方法P1、一个公有方法F2和一个受保护的方法F3:类P和类Q是类O的派生类,其继承方式如下所示:
classP:protected O{...};
classQ:public O{...};
关于方法门的描述中正确的是(34);关于方法F2的描述中正确的是(35);关于方法F3的描述中正确的是(36)。
A.方法F1无法被访问
B.只有在类O内才能访问方法F1
C.只有在类P内才能访问方法F1
D.只有在类Q内才能访问方法F1
解析:本题考查的是面向对象程序设计中的继承机制。
继承机制是面向对象技术提供的另一种解决软件复用问题的途径,即在定义一个新的类时,先把一个或多个已有类的功能全部包含进来,然后再给出新功能的定义或对已类的功能重新定义。
在继承关系中存在两个类:基类和派生类。继承的方式有3种:public、private和 protected。在不同的继承方式下,派生类对基类成员的访问权限不同,外界对派生类成员的能见度也不同。
1)基类中成员在派生类中的访问权限
. public继承方式:不改变基类中成员的访问权限。
. private继承方式:派生类所继承的基类成员的访问权限都改为private。
. protected继承方式:基类中private成员的访问权限不变,其余的都改为protected。
2)派生类所继承的基类成员的外部能见度(外界对基类成员的访问权限)
. 基类的private成员,只有基类的成员函数可以访问,派生类不能访问。
. 通过private方式继承的基粪成员(非private成员),只有派生类的成员函数可以访问,外界以及派生类的子类都不能访问。
通过protected方式继承的基类成员(非private成员),只有派生类以及该派生类的子类(非private方式产生的)可以访问,外界不能访问。
根据上述规则,类P和Q的成员函数及其访问控制如下表所示:
方法F1是基类O的private成员,虽然类P和Q继承了这个方法,但是只有在基类 O的内部才能访问方法P1。因此第 (34)空应选择答案B。
方法F2在类P中的访问控制为protected,因此在类P的内部该方法可以被访问,而类P的对象无法访问该方法;由此就可以判断出选项A和B是错误的;由于方法F2在类O和Q中的访问控制均为public,故类O和Q的对象都可以访问该方法。由此可见选项D所给出的“只有在类P内才能访问方法F2”是不正确。第(35)空的正确答案应该为C。
方法F3在类O、P、Q中的访问控制均为protected,该方法只有在这3个类的内部才能被访问,故第(36)空的正确答案为B。
定义在R上的函数F(X)满足关系式F(二分之一+X)+F(二分之一减区X)=2,则F(八分之一)+ 数学 2020-04-26 …
已知一函数定义域求另一函数定义域已知f(x)的定义域为[-2,2],求f(X乘X,减1)的定义域 数学 2020-05-02 …
怎么求弹道曲线弹道曲线在不同的情况下的阻力都不同,有没有一个通式之类的.还有,弹道曲线的S-T图像 物理 2020-05-14 …
函数f定义在正整数集上f(1)=1,f(3)=3,且对每个正整数n都有f(2n)=f(n),f(4 数学 2020-05-16 …
定积分中什么叫“第一类间断点”?定积分存在定理:若f(x)在[a,b]连续,或者至多有有限个第一类 其他 2020-05-16 …
在数据存储设计中,支持一类特定应用的数据组织类型常称为()。A.文件系统B.应用数据库C.主题数据库 计算机类考试 2020-05-24 …
在数据存储设计中,支持一类特定应用的数据组织类型常称为A.文件系统B.应用数据库C.主题数据库D. 计算机类考试 2020-05-24 …
关于三角恒等变换的函数大题的解法讨论自学必修四的时候遇到了困难,就是这样一类题:已知函数f(x)= 数学 2020-06-04 …
洛必达证明:为什么[f(x)-f(a)]/(x-a)=f'(a)?我现在是入门。所以泰勒定理一类的 数学 2020-06-11 …
当x=0时怎么确定∫(积分上限为x积分下线为0)f(t)dt的定义域中包括x=0设f(x)是奇函数 数学 2020-06-26 …