已知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内才能访问方法F1C.只有在类P内才能访问方法F1D.只有在类Q内才能访问方法F1

题目

已知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


相似考题
参考答案和解析
正确答案:B
解析:本题考查的是面向对象程序设计中的继承机制。
  继承机制是面向对象技术提供的另一种解决软件复用问题的途径,即在定义一个新的类时,先把一个或多个已有类的功能全部包含进来,然后再给出新功能的定义或对已类的功能重新定义。
  在继承关系中存在两个类:基类和派生类。继承的方式有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。
更多“已知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内才能访问方法F1C.只有在类P内才能访问方法F1D.只有在类Q内才能访问方法F1”相关问题
  • 第1题:

    下面描述中,错误的是()。

    A.在派生类中不可见的成员要变成可访问的,需要进行访问声明

    B.在基类定义的public成员在保护继承的派生类中可见,也能在类外被访问

    C.在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问

    D.在基类定义的public和protected成员在保护继承的派生类中可见


    正确答案:BC

  • 第2题:

    己知3个类O、P和Q,类O中定义了一个私有方法F1、一个公有方法F2和一个受保护的方法F3:类P和类Q是类O的派生类,其继承方式如下所示:

    class P:protected O {…};

    class Q:public O {…};

    关于方法F1的描述中正确的是(1);关于方法F2韵描述中正确的是(2);在关于方法F3的描述中正确的是(3)。

    (1)

    A.方法F1无法被访问

    B.只有在类。内才能访问方法F1

    C.只有在类P内才能访问方法Fl

    D.只有在类Q内才能访问方法F1


    正确答案:B

  • 第3题:

    已知3个类R、S和T,类R中定义了一个私有方法F1和一个公有方法F2;类S中定义了一个公有方法F3,类S为类R的派生类,类T为类S的派生类,它们的继承方式如下所示:

    class S: public R {…};

    class T: private S {…};

    在关于类S的描述中正确的是(5);在关于类T的描述中正确的是(6)。

    A.类S的对象可以访问F1,但不能访问F2

    B.类S的对象可以访问F2,但不能访问F1

    C.类S的对象既可以访问F1,也可以访问F2

    D.类S的对象既不能访问F1,也不能访问F2


    正确答案:B

  • 第4题:

    以下关于Singleton(单例)模式的描述中,正确的是 (47)。A.它描述了只有一个方法的类的集合SXB

    以下关于Singleton(单例)模式的描述中,正确的是 (47)。

    A.它描述了只有一个方法的类的集合

    B.它描述了只有一个属性的类的集合

    C.它能够保证一个类的方法只能被一个唯一的类调用

    D.它能够保证一个类只产生唯一的一个实例


    正确答案:D
    本题主要考查单例模式。单例模式的最大特点是一个类只有一个实例,因此采用这种设计模式,就可以实现类A的所有使用者都使用A的同一个实例。

  • 第5题:

    以下关于单身模式(Singleton)的描述中,正确的是 (38) 。A.它描述了只有一个方法的类的集合SXB

    以下关于单身模式(Singleton)的描述中,正确的是 (38) 。

    A.它描述了只有一个方法的类的集合

    B.它能够保证一个类只产生一个唯一的实例

    C.它描述了只有一个属性的类的集合

    D.它能够保证一个类的方法只能被—个唯一的类调用


    正确答案:B
    单身模式(Singleton)是一种创建型模式。创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建、组合和表示它的对象。对于系统中的某些类而言,只有一个实例是很重要的。单身模式的意图就是保证一个类仅有一个实例,并提供一个访问它的全局访问点。

  • 第6题:

    对于如图1-4所示的UML类图,正确的描述是______。

    A.类O的实例中包含了对类P的实例的引用

    B.类O的实例中包含了对类Q的实例的引用

    C.类P的实例中包含了对类O的实例的引用

    D.类P的实例中包含了对类Q的实例的引用


    正确答案:C
    解析:在图1-4所示的UML类图中,带箭头方向的实线“”表示类O、P(既可以是相同类也可以是不同类)之间存在关联关系。根据图中的箭头走向可知,导航方向是P→O,说明可以从类P的实例导航到类O的实例,因此在类P中必然包含一个对类O的实例的引用。在图1-4中,“-Q”表示的是关联一端的角色名称。

  • 第7题:

    关于方法F1的描述中正确的是(2),关于方法F2的描述中正确的是(3),关于方法3的描述中正确的是(4)。

    A.方法F1无法被访问

    B.只有在类O内才能访问方法F1

    C.只有在类P内才能访问方法F1

    D.只有在类Q内才能访问方法F1


    正确答案:B

  • 第8题:

    已知两个类R、S,类R中定义了一个私有方法F1和一个公有方法F2;类S中定义了一个公有方法 F3,类S为类R的派生类。它们的继承方式如下所示 class S:public R{…); 以下关于类S的描述中,正确的是(51)。

    A.类S的对象可以访问F1,但不能访问F2

    B.类S的对象可以访问F2,但不能访问F1

    C.类S的对象既可以访问F1,也可以访问F2

    D.类S的对象既不能访问F1,也不能访问F2


    正确答案:B
    解析:已知两个类R、S,类R中定义了一个私有方法F1和一个公有方法F2:类S中定义了一个公有方法F3,类S为类R的派生类。其中,访问控制包括:public(公有派生)、protected(保护派生)和private(私有派生)。基类中的访问权限在派生类中的继承关系如表3-7所示。由于类R中定义了一个私有方法F1,类的私有成员只有在本类中才能访问,因此选项中凡出现“可以访问F1”都是错误的,据此排除选项A、C。S是采用public继承方式从类R中派生而来,那么类R中的所有公有成员都是类S的公有成员,在程序中的任何位置均可被访问,因此选项B是正确答案。

  • 第9题:

    下面的说法正确的是()

    • A、当且仅当类C是抽象类时,才能包含final方法
    • B、类C中的protected实例方法可以被子类覆盖
    • C、类C中的private静态方法只能被类C中的其它静态方法调用
    • D、类C中的public静态方法可以被子类直接访问,而不需要用类名引用方法

    正确答案:B,D

  • 第10题:

    下列关于继承的描述中,错误的是()。

    • A、基类中的析构函数不能被派生类继承
    • B、基类中的保护成员在派生类中无法直接访问
    • C、派生类的成员除了包括派生类中自己定义的成员外,还包括它从基类继承的成员
    • D、在公有继承方式下基类中公有成员和保护成员的访问权限到派生类保持不变

    正确答案:B

  • 第11题:

    多选题
    下面的说法正确的是()
    A

    当且仅当类C是抽象类时,才能包含final方法

    B

    类C中的protected实例方法可以被子类覆盖

    C

    类C中的private静态方法只能被类C中的其它静态方法调用

    D

    类C中的public静态方法可以被子类直接访问,而不需要用类名引用方法


    正确答案: D,C
    解析: 暂无解析

  • 第12题:

    单选题
    下面关于类的继承性的描述中,错误的是()。
    A

    继承是在已有的基础上生成新类的一种方法

    B

    Java语言要求一个子类只有一个父类

    C

    父类中成员的访问权限在子类中将被改变

    D

    子类继承父类的所有成员,但不包括私有的成员方法


    正确答案: A
    解析: 暂无解析

  • 第13题:

    对于如图4-3所示的UML类图,正确的描述是(47)。

    图4-3 某UML类图

    A.类O的实例中包含了对类P的实例的引用

    B.类O的实例中包含了对类Q的实例的引用

    C.类P的实例中包含了对类O的实例的引用

    D.类P的实例中包含了对类Q的实例的引用


    正确答案:C
    解析:在图4-3所示的UML类图中,带箭头方向的实线“→”表示类O、P(既可以是相同类也可以是不同类)之间存在着关联关系。根据图中的箭头走向可知,导航方向是P→O,说明可以从类P的实例导航到类O的实例,因此在类P中必然包含一个对类O的实例的引用。在图4-3中,“-Q”表示的是关联一端的角色名称。

  • 第14题:

    下列关于成员访问权限的描述中,不正确的是( )。

    A.公有数据成员和公有成员函数都可以被类对象直接处理

    B.类的私有数据成员只能被公有成员函数以及该类的任何友元类或友元函数访问

    C.只有类或派生类的成员函数和友元函数可以访问保护成员

    D.保护成员在派生类中可以被访问,而私有成员不可以


    正确答案:B
    解析:类的私有数据成员也可以被类成员函数访问,不管是公有、私有或是保护成员,所以选项B是错误的,其他选项是正确的。

  • 第15题:

    己知3个类O、P和Q,类O中定义了一个私有方法F1、一个公有方法F2和一个受保护的方法F3;类P和类Q是类O的派生类,其继承方式如下所示。

    关于方法F1的描述中正确的是(41);关于方法F2的描述中正确的是(42);关于方法F3的描述中正确的是(43)。

    A.方法F1无法被访问

    B.只有在类O内才能访问方法F1

    C.只有在类P内才能访问方法F1

    D.只有在类Q内才能访问方法F1


    正确答案:B

  • 第16题:

    已知3个类O、P和Q,其中类O由类P的一个实例和类Q的1个或多个实例构成。能够正确表示类O、P和Q之间关系的UML类图是______。

    A.

    B.

    C.

    D.


    正确答案:D
    解析:由试题中的关健信息“类O由类P的一个实例和类Q的1个或多个实例构成”可知,类O、P、Q之间存在着“整体——部分”的构成关系,即类O表示整体概念,类P、Q为部分概念。在UML规范中,构成关系可以使用关联和聚集来表示。在UML模型图中,关联的图示是一条连接相同或不同类的实线(—或→)。聚集是一种特殊的关联,在整体的一端用一个空心菱形修饰,即其图示是“”。图示“”表示的是一种泛化关系,据此可排除选项A和选项B。选项C中,类Q端的关联多重度被指定为“1…*,说明类Q中必须包含(1…*)个类O的对象,这与试题中的描述恰好相反,因此选项C是错误答案,选项D是正确答案。

  • 第17题:

    对于如图1-4所示的UML类图,正确的描述是(47)。

    A.类O的实例中包含了对类P的实例的引用

    B.类O的实例中包含了对类Q的实例的引用

    C.类P的实例中包含了对类O的实例的引用

    D.类P的实例中包含了对类Q的实例的引用


    正确答案:C
    解析:在图1-4所示的UML类图中,带箭头方向的实线“→”表示类O、P(既可以是相同类也可以是不同类)之间存在关联关系。根据图中的箭头走向可知,导航方向是P→O,说明可以从类P的实例导航到类O的实例,因此,在类P中必然包含一个对类O的实例的引用。在图1-4所示中,“-Q”表示的是关联一端的角色名称。

  • 第18题:

    已知3个类O,P和Q,类O中定义了一个私有方法F1和一个公有方法F2,类P中定义了一个公有方法F3,类P为类O的派生类,类Q为类P的派生类,它们的继承方式如下所示:

    class P:pubhc O{…}

    class Q:Pnvate P{…}

    在关于类P的描述中正确的是(42),在关于类Q的描述中正确的是(43)。

    A.类P的对象可以访问F1,但不能访问F2

    B.类P的对象可以访问F2,但不能访问F1

    C.类P的对象既可以访问F1,也可以访问F2

    D.类P的对象既不能访问F1,也不能访问F2


    正确答案:B

  • 第19题:

    已知3个类O、P和Q,类O中定义了一个私有方法F1、一个公有方法 F2和一个受保护的方法F3:类P和类Q为类O的派生类,其继承方式如下所不:

    class P:protected O{...}

    class Q;public O{…}

    在关于方法F1的描述中正确的是(54)。在关千方法F2的描述中正确的是(55)。在关于方法F3的描述中正确的是(56)。

    A.方法F1无法被访问

    B.只有在类O内才能访问方法n

    C.只有在类P内才能访问方法F1

    D.只有在类Q内才能访问方法F1


    正确答案:B

  • 第20题:

    已知3个类O、P和Q,类O中定义了一个私有方法F1、一个公有方法F2和一个受保护的方法F3;类P和类Q为类O的派生类,其继承方式如下所示:

    class P:protected O{…};

    class Q:public O{…};

    在关于方法F1的描述中正确的是(1);在关于方法F2的描述中正确的是(2);在关于方法F3的描述中正确的是(3)。

    A.方法F1无法被访问

    B.只有在类O内才能访问方法F1

    C.只有在类P内才能访问方法F1

    D.只有在类Q内才能访问方法F1


    正确答案:B
    解析:本题考查的是面向对象程序设计中的继承机制。
      继承机制是面向对象技术提供的另一种解决软件复用问题的途径。即在定义一个新的类时,先把一个或多个已有类的功能全部包含进来,然后再给出新功能的定义或对已有类的功能重新定义。
      在继承关系中存在两个类:基类和派生类。继承的方式有3种:public、private和 protected。在不同的继承方式下,派生类对基类成员的访问权限不同,外界对派生类成员的能见度也不同。
      ①基类中成员在派生类中的访问权限
      . public:不改变基类中成员的访问权限。
      . private:派生类所继承的基类成员的访问权限都改为private。
      . protected:基类中private成员的访问权限不变,其余的都改为protected。
      ②派生类所继承的基类成员的外部能见度(外界对基类成员的访问权限)
      . 基类的private成员:只有基类的成员函数可以访问,派生类不能访问。
      . 通过private方式继承的基类成员(非private成员):只有派生类的成员函数可以访问,外界以及派生类的派生类都不能访问。
      通过protected方式继承的基类成员(非private成员),只有派生类以及该派生类的子类(非private方式产生的)可以访问,外界不能访问。
      根据上述规则,类P和Q的成员函数及其访问控制如下表所示:
     
      方法F1是基类O的private成员,虽然类P和Q继承了这个方法,但是只有在基类 O的内部才能访问方法F1。因此第(1)空应选择答案B。
      方法F2在类P中的访问控制为protected,因此在类P的内部该方法可以被访问,而类P的对象无法访问该方法;由此就可以判断出选项A和B是错误的。由于方法F2在类O和Q中的访问控制均为public,故类O和Q的对象都可以访问该方法。由此可见选项D所给出的“只有在类P内才能访问方法F2”是不正确。第(2)空的正确答案应该为C。
      方法F3在类O、P、Q中的访问控制均为protected,该方法只有在这3个类的内部才能被访问,故第(3)空的正确答案为B。

  • 第21题:

    下面关于类的继承性的描述中,错误的是()。

    • A、继承是在已有的基础上生成新类的一种方法
    • B、Java语言要求一个子类只有一个父类
    • C、父类中成员的访问权限在子类中将被改变
    • D、子类继承父类的所有成员,但不包括私有的成员方法

    正确答案:C

  • 第22题:

    下列有关父类属性和方法继承规则的描述错误的是哪项?()

    • A、 父类中private修饰的属性和方法在子类中不被继承
    • B、 父类中public修饰的属性和方法在子类中被继承且可访问
    • C、 父类中protected修饰的属性和方法在子类中被继承且可访问
    • D、 父类中default修饰的属性和方法在子类中被继承,若父类和子类在同一个包中,则也可访问

    正确答案:A

  • 第23题:

    单选题
    下列有关父类属性和方法继承规则的描述错误的是哪项?()
    A

     父类中private修饰的属性和方法在子类中不被继承

    B

     父类中public修饰的属性和方法在子类中被继承且可访问

    C

     父类中protected修饰的属性和方法在子类中被继承且可访问

    D

     父类中default修饰的属性和方法在子类中被继承,若父类和子类在同一个包中,则也可访问


    正确答案: C
    解析: 暂无解析