Q8:JavaSE面向对象相关题目

JavaSE面向对象相关题目

  1. 己知如下Java类定义:
    class Base{
    public Base(){…}
    public void fun(int n){…}
    }
    public class Child extends Base{
    //member methods
    }
    如下哪句可以正确地被加入Child类中(D)
    A) pr:ivate void fun(int n) {. . . }
    B) void fun(int n) {… }
    C) protected void fun(int n) {…}
    D) public void fun(int n) {…}

  2. 若类A仅在其方法Methodl中定义并使用了类B的一个对象,类A其他部分的代码都不涉及类B,那么类A与类B的关系应为(B);若类A的某个属性是类B的一个对象,并且类A对象消失时,类B对象也随之消失,则类A与类B的关系应为 ( D )。
    A)关联
    B)依赖
    C)聚合
    D)组合

  3. Java中实现多态的机制是什么?

  • 依靠父类或接口的引用指向子类,从而实现了一个对象多种形态的特性。在程序运行时动态的指向具体的实例,调用该引用的方法时,不是根据引用变量的类型中定义的方法来运行,而是根据具体的实例的方法。
  1. 面向对象编程的三个基本特征: 封装 、 继承 、 多态 。

  2. 关于面向对象的基本原则描述如下,请任选三条进行简单解释。

    • S:Single Responsibility Principle - SRP(单一职责原则)
      在这里插入图片描述
      在这里插入图片描述

    • O:Open-Closed Principle - OCP(开放封闭原则)
      在这里插入图片描述
      在这里插入图片描述

    • L:Liskvo Substitution Principle - LSP(里氏替换原则)
      在这里插入图片描述

    • I:nterface Segregation Principle - ISP(接口隔离原则)
      在这里插入图片描述
      在这里插入图片描述

    • D:Dependency Inversion Principle - DIP(依赖倒置原则)
      在这里插入图片描述

  3. 下列哪一种叙述是正确的() D
    A、 abstract修饰符可修饰字段、方法和类
    B、 抽象方法的body部分必须用一对大括号{)包住
    C、 声明抽象方法,大括号可有可无
    D、 声明抽象方法不可写出大括号

  4. 下面关于继承的哪些叙述是正确的。a
    A、 在java中类只允许单一继承。
    B、 在java中一个类只能实现一个接口。
    C、 在java中一个类不能同时继承一个类和实现一个接口。
    D、 Java的单一继承使代码更可靠

  5. 下列哪种说法是正确的()d
    A、 实例方法可直接调用超类的实例方法
    B、 实例方法可直接调用超类的类方法
    C、 实例方法可直接调用其他类的实例方法
    D、 实例方法可直接调用本类的实例方法

|9. 抽象类和接口的区别。

abstract classinterface
属性不用限制public静态常量
构造方法可有可无没有
普通方法可以有具体方法必须是public抽象方法
子类单一继承多重实现(接口继承接口时为多重继承)
静态方法没有
  1. 请简单描述抽象、继承、封装、多态。
  • 抽象:只声明行为接口(方法签名)而不完成具体的实现。

  • 继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。一个新类可以从现有的类中派生,这个过程称为类继承,新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类),派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要

  • 封装:属性私有化,提供公共的方法来访问私有属性getter、setter

  • 多态:允许不同类的对象对同一消息做出不同的反应

  1. 以下()不是Object类的方法 a
    A) hasNext()
    B) finalize()
    C) toString()
    D) clone()

在这里插入图片描述
12. 以下对重载描述错误的是()d
A) 构造方法不能重载
B) 方法重载只能发生在一个类的内部.
C) 重载要求方法名相同,参数列表不同
D) 方法的返回值类型不是区分方法重载的条件
在这里插入图片描述

  1. 接口和抽象类描述正确的有(多选)BCD
    A) 抽象类没有构造函数
    B)接口中的方法可以有方法体 jdk1.8后
    C) 抽象类不允许多继承
    D) 接口没有构造函数
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 能用来修饰interface的有( )b
     A.private B.public C.protected D.static
    在这里插入图片描述

  3. 在使用super 和this关键字时,以下描述正确的是()d
    A) this()和super()可以在static环境中使用,包括static方法和static语句块
    B) super()和this()不一定要放在构造方法内第一行
    C) this()和super()可以同时出现在一个构造函数中
    D) 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  4. 以下对封装的描述正确的是()d
    A) 只能对一个类中的方法进行封装,不能对属性进行封装
    B) 封装的意义不大,因此在编码时尽量不要使用
    C)如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用
    D) 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性

  5. 以下说法错误的是b
    A) super()方法可以调用父类的所有非私有方法
    B) this和super关键字可以出现在同一个构造函数中
    C) super.属性可以调用父类的所有非私有属性
    D) super()可以调用父类的所有非私有构造函数.

  6. Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  7. 在Java中,以下关于方法重载和方法重写描述正确的是()。d
    A、方法重载和方法重写实现的功能相同
    B、方法重载出现在父子关系中,方法重写是在同一个类中
    C、方法重载的返回类型必须一致,参数必须不同
    D、方法重写的返回值类型必须相同(或是其子类)

  8. 接口是Java面向对象的实现机制之一,以下说法正确的是?b
    A Java支持多重继承,一个类可以实现多个接口。
    B Java只支持单重继承,一个类可以实现多个接口。
    C Java只支持单重继承,一个类只可以实现一个接口。
    D Java支持多重继承,但一个类只可以实现一个接口。
    在这里插入图片描述

  9. 下列关于interface的说法正确的是?d
    A interface中可以有private方法。
    B interface中可以有final方法。
    C interface中可以有function实现。
    D interface可以继承其他interface。
    在这里插入图片描述

  10. 关于Java中的继承,以下说法正确的有()bc
    A Java支持单继承和多重继承
    B Java只支持单继承,不支持多重继承
    C Java中的类最多只有一个直接父类,或者没有父类
    D Java中的每个类都有一个直接父类,而且只有一个直接父类

  11. 什么是面向接口编程?面向接口编程有什么好处?试举一个你在开发中使用面向接口的编程的例子?
    在这里插入图片描述
    在这里插入图片描述

  12. 下列哪一种叙述是正确的d
    A abstract修饰符可修饰字段、方法和类
    B 抽象方法的body部分必须用一对大括号{}包住
    C 声明抽象方法,大括号可有可无
    D 声明抽象方法不可写出大括号

  13. 为了使模块尽可能独立,要求()b
    A. 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
    B. 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
    C. 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
    D. 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
    在这里插入图片描述

  14. 关于继承,以下说法正确的是: ( )a d
    A. Java中只支持单继承,一个类只能继承一个类,但是可以有多个子类
    B. 一个类如果没有自己写无参构造方法,那么子类将无法继承
    C. 子类可以当父类用,父类不可以当子类用
    D. 子类重写父类方法时访问权限不能更低

  15. 下列选项中,用于在定义子类时声明父类名的关键字是()c
    (A) interface (B) package © extends (D) class

  16. Java语言的类间的继承关系是( )b
    (A) 多重的 (B) 单重的 © 线程的 (D) 不能继承

  17. 现有两个类A、B,以下描述中表示B继承自A的是( )d
    (A) class A extends B (B) class B implements A
    © class A implements B (D) class B extends A

  18. 下列类定义中哪些是合法的抽象类定义( )c
    (A)abstract Animal{abstract void growl();}
    (B)Class abstract Animal{abstract void growl();}
    ©abstract class Animal{ abstract void growl();}
    (D)abstract class Animal{abstract void growl(){System.out.println(“haha”);};}

  19. 若在某一个类定义中定义有如下的方法:abstract void performDial();该方法属于( )c
    (A)接口方法 (B)最终方法 ©抽象方法 (D)空方法

  20. 如果类C1继承自类C2,并实现了接口I1,而类C2实现了接口I2,请挑出下面代 码的错误的部分:( )b
    (A) C2 instance = new C1();
    (B) C1 instance = new C2();
    © I1 instance = new C1();
    (D) I2 instance = new C1();

  21. A派生出子类B,B派生出子类C,并且在Java源代码中有如下声明:
    A a0 = new A();
    A a1 = new B();
    A a2 = new C();
    问以下哪个说法是正确的?( )d
    (A) 只有第1行能通过编译
    (B) 第1、2行能通过编译,但第3行编译出错
    ( C)第1、2、3行能通过编译,但第2、3行运行时出错
    (D) 第1行、第2行和第3行的声明都是正确的

  22. 在JAVA中,Object类是所有类的父亲,用户自定义类默认扩展自Object类,下列选项中的( )方法不属于Object类的方法。ad
    (A)equals(Object obj)
    (B)getClass()
    ©toString()
    (D)trim()
    在这里插入图片描述

  23. 下列程序的输出结果是( )b
    interface Number{
    final String str = “Hello world”;
    }
    public class HelloWorld implements Number{
    Public static void main(String [] args){
    System.out.println(str);
    }
    }

(A) 编译错误
(B) 输出Hello world
© 什么都不输出
(D) 输出str

  1. 下面那几个函数是 public void example(…)的重载函数?A
    A. public vold example(int m) { …}
    B. public int example (){…}
    C. public int example 2(){…}
    D. public int example (int m,float f){…}

  2. Java中实现多态的机制是什么?
    在这里插入图片描述

  3. 下面那个函数是public void aMethod(){…}的重载函数?Bd
    A、 void aMethod( ){…}
    B、 public int aMethod(int a, float b){…}
    C、 public void aMethod (){…}
    D、 public float aMethod (int m){…}

  4. 以下对重载描述错误的是( )a
    A. 构造方法不能重载
    B. 方法重载只能发生在一个类的内部
    C. 重载要求方法名相同,参数列表不同
    D. 方法的返回值类型不是区分方法重载的条件
    在这里插入图片描述

  5. 关于接口以下说法不正确的有( )c
    A. 接口是抽象的最高境界。 B. 接口提供了方法的定义。
    C. 接口中的方法都是public的。 D. 实现接口必须实现接口中的一个方法
    在这里插入图片描述

  6. 在使用super 和this关键字时,以下描述正确的是( )d
    A. super()和this()不一定要放在构造方法的第一行
    B. this()和super()可以同时出现在一个构造函数中
    C. this()和super()可以在static环境中使用,包括static方法和static语句块
    D. 在子类构造方法中使用super()显式调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
    在这里插入图片描述

  7. 以下描述正确的有( )b
    A. abstract可以修饰类、接口、方法、变量
    B. abstract修饰的类主要用于被继承
    C. 声明抽象方法,大括号可有可无
    D. abstract修饰的类,其子类也必须是abstract修饰的
    在这里插入图片描述
    在这里插入图片描述

  8. 关于java中继承的特点,以下说法正确的是( )b
    A. 使类的定义复杂化
    B. Java只支持单继承,不支持多继承,但可以通过接口实现多继承的目的
    C. 子类继承父类的所有成员变量和方法,包括父类的构造方法
    D. 不可多层继承,即一个类不可以继承一个类的子类
    在这里插入图片描述
    在这里插入图片描述

  9. 构造器constructor可以进行下列哪些操作()b
    A. 被继承
    B. 被重载
    C. 被重写
    D. 被注入
    在这里插入图片描述

  10. 下列哪些是错误的()B
    A. 抽象类可以有构造方法,接口中不能有构造方法
    B. 抽象类中不能有普通成员变量,接口中可以有普通成员变量
    C. 抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法
    D. 抽象类中可以包含静态方法,接口中不能包含静态方法

  11. 下列哪种说法是错误的()d
    A. 接口可以继承接口
    B. 具体类可以继承多个抽象类
    C. 抽象类是不可继承具体类
    D. 抽象类可以实现多接口

  12. 关键字super的作用是?d
    A、 用来调用父类的构造函数
    B、 用来访问父类被隐藏的成员变量
    C、 用来调用父类中被重载的方法
    D、 以上都是

  13. 下面不是面向对象技术特点的是?a
    A、 模块化
    B、 封装
    C、 继承
    D、 多态

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值