JavaSE day01【复习回顾面向对象基础、继承、抽象类】测评

发布时间 2023-09-26 23:12:59作者: 奋斗的软件工程师

选择题

题目1(单选):

下列关于Java中类与类之间的关系描述正确的是( )

选项 :

​ A. Java中类与类属于多继承 , 还可以多层继承

​ B. Java中类与类属于实现关系 , 可以单实现也可以多实现

​ C. Java中类与类属于实现关系 , 可以只能单实现

​ D. Java中类与类属于单继承 , 还可以多层继承

题目2(单选):

下列关于继承中成员变量访问的特点是( )

选项 :

​ A. 继承中如果局变变量和成员变量名字相同无法进行区分

​ B. 继承中成员变量先看父类 , 父类不存在在找子类

​ C. 继承中成员变量属于就近原则

​ D. 父类中的私有变量子类没有任何方式可以获取

题目3(单选):

下列关于继承中成员方法访问的特点是( )

选项 :

​ A. 继承中子类可以使用父类所有权限的方法

​ B. 继承中子类和父类出现了同名方法 , 优先使用父类的

​ C. 继承中子类和父类出现了同名方法 , 可以使用this和super进行区分

​ D. 以上选项都是错误的

题目4(单选):

**下列关于继承中构造方法访问的特点错误的是( ) **

选项 :

​ A. 每一个构造方法中都会存在一个super() , 去访问父类的无参构造 (不考虑Object类)

​ B. 构造方法中this(...) 和 super(...) 不能同时存在

​ C. this(...) 和 super(...) 都需要放在构造方法中第一行有效语句的位置

​ D. this() 可以在成员方法中使用

题目5(单选):

下列关于方法重写说法正确的是 ( )

选项 :

​ A. 子类重写父类的方法,必须是方法名,参数列表,返回值类型一模一样

​ B. 任何权限的方法子类都可以重写

​ C. 重写方法权限必须大于父类的方法的权限

​ D. @Override是放在重写后的方法上,作为重写是否正确的校验注解

题目6(多选):

下列关于this和super说法正确的是 ( )

选项 :

​ A. this代表的是本类对象的引用

​ B. super代表的是父类数据存储空间(可以看做成父类的对象使用)

​ C. this和super可以调用成员变量 , 成员方法 , 构造方法

​ D. this和super用来区分子父类成员

题目7(单选):

下列关于抽象类说法正确的是( )

选项 :

​ A. 抽象类中必然存在抽象方法

​ B. 抽象方法必须存在抽象类中

​ C. 抽象类的子类必须重写抽象类中所有的抽象方法

​ D. 抽象类也是类,可以进行创建对象

题目8(单选):

下列关于抽象类说法错误的是( )

选项 :

​ A. 抽象类中的抽象方法是让子类必须完成某些功能

​ B. 抽象类中的非抽象方法是让子类继承,提高代码的复用性

​ C. 抽象类中可以有抽象方法,也可以有非抽象方法,但是抽象方法必须存在抽象类中

​ D. 抽象类不能实例化,不能有子类

题目9(单选):

查看下列代码 , 选出程序正确的执行结果( )

public class Test {
    public static void main(String[] args) {
        new Zi(10);
    }
}

class Fu {
    public Fu() {
        System.out.println("父类空参构造");
    }
    public Fu(int a) {
        this();
        System.out.println("父类有参构造");
    }
}

class Zi extends Fu {
    public Zi() {
        super(10);
        System.out.println("子类空参构造");
    }

    public Zi(int a) {
        this();
        System.out.println("子类有参构造");
    }
}

选项 :

​ A.

父类空参构造
父类有参构造
子类空参构造
子类有参构造

​ B.

父类空参构造
父类有参构造
子类有参构造
子类空参构造

​ C.

父类有参构造
父类空参构造
子类空参构造
子类有参构造

​ D.

子类有参构造
子类空参构造
父类空参构造
父类有参构造

题目10(单选):

查看下列代码 , 选出程序正确的执行结果( )

class Father {
    int num = 30;
}
class Son extends Father {
    int num = 20;
    public void show() {
        int num = 10;
        System.out.println(位置1); // 打印10
        System.out.println(位置2); // 打印20
        System.out.println(位置3); // 打印30
    }
}

选项 :

​ A. 位置1: num 位置2: this.num 位置3: super.num

​ B. 位置1: num 位置2: this.num 位置3: this.this.num

​ C. 位置1: this.num 位置2: num 位置3: super.num

​ D. 位置1: num 位置2: super.num 位置3: this.num

答案: D C C D D / ABCD B D A A