【Java练习题汇总】《第一行代码JAVA》面向对象进阶篇,汇总Java练习题——面向对象:特性详解、关键字this、super、instanceof、final、static、抽象类与接口... ~

Java练习题 · 面向对象进阶篇

1️⃣ 面向对象进阶篇

一、填空题

  1. Java 中通过_______关键字实现继承。
  2. 一个类只能继承_______个父类,但能实现_______个接口。
  3. _______ 类是所有类的父类,该类中判断两个对象是否相等的方法是_______,取得对象完整信息的方法是_______。
  4. Integer 类是对_______基本数据类型的封装。 Float 类是对_______基本数据类型的封装。 Double类是对_______ 基本数据类型的封装。字符类Character 是对_______基本数据类型的封装。
  5. 当子类中定义的方法与父类方法同名且参数类型及个数、返回值类型相同时,称子类方法_______父类方 法,子类默认使用_______方法,使用父类的同名方法,必须使用_______关键字说明。
  6. 当子类定义的成员变量与父类的成员变量同名时,称子类_______父类的成员变量,子类默认使用_______属性。使用父类的同名成员变量,必须用_______关键字说明。
  7. 如果子类定义了构造方法,在创建子类对象时首先默认调用_______,然后调用本类的构造方法。

二、选择题

  1. 不能直接使用 new 创建对象的类是( )。
    A. 静态类
    B. 抽象类
    C. 最终类
    D. 公有类

  2. 为类定义多个名称相同,但参数的类型或个数不同的方法的做法称为( )。
    A. 方法重载
    B. 方法覆写
    C. 方法继承
    D. 方法重用

  3. 定义接口的关键字是( )。
    A. extends
    B. class
    C. interface
    D. public

  4. 现在有两个类AB, 以下描述中表示B 继承自A 的是 ( )。
    A. class A extends B
    B. class B implements A
    C. class A implements B
    D. class B extends A

  5. 下面关于子类调用父类构造方法的描述正确的是( )。
    A. 子类定义了自己的构造方法,就不会调用父类的构造方法
    B. 子类必须通过super 关键字调用父类有参的构造方法
    C. 如果子类的构造方法没有通过 super 调用父类的构造方法,那么子类会先调用父类中无参构 造方法,再调用子类自己的构造方法
    D. 创建子类对象时,先调用子类自己的构造方法,让后再调用父类的构造方法

  6. 假设类X 是类Y 的父类,下列声明对象x 的语句中不正确的是( )。
    A. X x = new X();
    B. X x = new Y();
    C. Y x = new Y();
    D. Y x = new X();

  7. 编译并运行下面的程序,结果是( )。

    public class A {
          
          
    	public static void main(String args[]){
          
          
    		B  b = new  B();
    		b.test();
    	}
    	void test(){
          
          
    		System.out.print("A");
    	}
    }
    
    class B extends A{
          
          
    	void test(){
          
          
    		super.test();
    		System.out.println("B");
    	}
    }
    

    A. 产生编译错误,因为类B 覆盖类A 的方法 test()时,降低了其访问控制的级别
    B. 代码可以编译运行,并输出结果: AB
    C. 代码可以编译运行,但没有输出
    D. 代码可以编译运行,并输出结果: A

  8. ( )修饰符所定义的方法必须被子类所覆写。
    A. final
    B. abstract
    C. static
    D. interface

  9. ( )修饰符所定义的方法不能被子类所覆写。
    A. final
    B. abstract
    C. static
    D. interface

  10. 下面的程序编译运行的结果是( )。

    public class A implements B{
          
          
    	public static void main(String args[]){
          
          
    		int  m,n;
    		A a = new A();
    		m = a.K;
    		n = B.K;
    		System.out.println(m+","+n);
    	}
    }
    
    interface B{
          
          
    	int K=5;
    }
    

    A.5,5
    B.0,5
    C. 0,0
    D. 编译程序产生编译结果

  11. 下面关于接口的说法中不正确的是( )。
    A. 接口所有的方法都是抽象的
    B. 接口所有的方法一定都是 public类型
    C. 用于定义接口的关键字是 implements
    D. 接口是Java 中的特殊类,包含全局常量和抽象方法

  12. 下面关于Java 的说法不正确的是( )。
    A. abstract和 final 能同时修饰一个类
    B. 抽象类不光可以做父类,也可以做子类
    C. 抽象方法不一定声明在抽象类中,也可以在接口中
    D. 声明为 final的方法不能在子类中覆写

三、判断题

  1. final声明的类可以有子类。 ( )
  2. 一个类继承了抽象类,则抽象类中的抽象方法需要在其子类中覆写。 ( )
  3. final类型的变量是常量,其内容不可改变。 ( )
  4. 一个类不能既是子类又是父类。 ( )
  5. 子类只能继承父类的成员,但不能修改父类成员。 ( )
  6. Java 语言只支持单继承,不支持多继承。 ( )
  7. 子类可以继承父类的所有成员。 ( )
  8. 一个接口可以继承一个抽象类。 ( )
  9. 一个接口可以同时继承多个接口。 ( )
  10. 在程序中 thissuper调用构造方法时可以同时出现。 ( )

四、 简答题

  1. 简述 this与 super 关键字的区别。
  2. 简述方法的重载与覆写的区别。
  3. 在已有类的基础上派生新的类有什么好处?
  4. 如何区分子类和父类?子类可以继承父类的哪些内容?
  5. 什么是多态?实现都态的方法有哪些?
  6. 接口有哪些特征?如何定义和实现接口?
  7. 接口和抽象类有哪些区别?
  8. 简述基本数据类型的自动装箱及自动拆箱操作。

五、编程题

  1. 定义一个 ClassName 接口,接口中只有一个抽象方法 getClassName()。 设计一个类 Company, 该类实现接口 ClassName 中的方法 getClassName(),功能是获取该类的类名称。编写应用程序使用 Company 类。
  2. 建立一个人类(Person) 和学生类 (Student) 功能要求:
    A. Person 中包含4个保护型的数据成员 nameaddresssexage 分别为字符串、字符串、字符及整型。表示:姓名、地址、性别和年龄。 一个四参构造方法, 一个无参构造方法,及一个输出方法用于显示四种属性。
    B. Student 继承 Person, 并增加输出成员 mathenglish 存放数学和英语成绩。 一个六参构造方法, 一个两参构造方法, 一个无参构造方法,重写输出方法用于显示全部六种属性。
  3. 定义员工类,具有姓名、年龄、性别属性,并具有构造方法,显示数据方法。定义管理层类, 继承员工类,并有自己的属性:职务、年薪。定义职员类,继承员工类,并有自己的属性:所属部门、月薪。
  4. 定义类 Shape 表示一般二维图形。 Shape 具有抽象方法 areaperimeter,分别计算形状的面积和周长。试定义一些二维形状类(如矩形、三角形、圆形等),这些类均为Shape 类的子类。 B. Student 继承 Person, 并增加输出成员 mathenglish 存放数学和英语成绩。 一个六参构造方法, 一个两参构造方法, 一个无参构造方法,重写输出方法用于显示全部六种属性。

猜你喜欢

转载自blog.csdn.net/LVSONGTAO1225/article/details/131774373