本文章按照牛客网每日一练上的10道题目上做错的习题来记录错题,并分享解析。
公众号:恩故事还在继续
打卡时间 2022-3-28
题目类型:基础概念
题目数量:10 答对题目数:6 准确率:60%
1️⃣ 下面关于继承的描述正确的是 (A)
A. 在Java中类只允许单一继承
B. 在Java中一个类只能实现一个接口
C. 在Java中一个类不能同时继承一个类和实现一个接口
D. Java的单一继承使代码不可靠
✏️ 解析
这道题目考察的是关于继承相关的概念,所以解题前我们需要了解下面这些概念
java只支持单一继承,多实现(指的是可以实现多个接口),继承和实现是两个不同的概念,只是通过实现多个接口来达到“多继承”的作用
注意:接口不是类
补充知识
1. 子类拥有父类非 private 的属性、方法。
2. 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
3. 子类可以用自己的方式实现父类的方法。
4. Java 的继承是单继承,但是可以多重继承(一般不支持这样用),单继承就是一个子类只能继承一个父类,多重继承就是,例如 B 类继承 A 类,C 类继承 B 类,所以按照关系就是 B 类是 C 类的父类,A 类是 B 类的父类。
2️⃣ 下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?(B)
A. private
B. 无修饰符
C. public
D. protected
✏️ 解析
这道题目考察的是java访问修饰符的概念,在解题之前我们需要了解修饰符他们的作用。
访问优先级排序: public > protected > 默认(default) > private
1、public: 任何地方均可访问;
2、private: 只限类的内部访问;
3、protected: 受保护的,类的内部可访问;同一个包下的均可访问;不同包下只有有继承关系的才可访问;
4、默认(default): 类的内部可访问;只能被同一个包的类访问;不同包下都不能访问。
根据题目意思以及上面的概念, 我们首先可以排除A、C, 然后剩下B、D选项, 题目意思是哪种修饰符可以使一个类中定义的成员变量只能被同一个包的类访问, 通过比较我们知道default修饰符符合题意。
3️⃣ 关于访问权限,说法正确的是? ( A)
A. 类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A可以访问类B的方法testB
B. 类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A不可以访问类B的方法testB
C. 访问权限大小范围:public > 包权限 > protected > private
D. 访问权限大小范围:public > 包权限 > private > protected
✏️ 解析
这是一道关于第二题的延伸,放到这里的目的就是为了巩固第二题基础概念, 如果掌握了第二题的基本概念这道题目可以很快的解出来。
4️⃣ 下面哪个关键字可以用于Java的构造方法上?(E)
A. final
B. static
C. synchronized
D. native
E. None of these.
✏️ 解析
在解决这道题目之前我们需要了解构造方法的作用以及一些概念。
构造方法的作用主要就是用来创建对象,给对象属性赋值。
1. java构造方法中的super关键字:构造方法的super关键字用于调用其父类的构造方法,子类默认调用父类的构造方法,也就是说super()是默认调用的,显示调用必须放在构造方法第一行!
2. 构造方法不可以被继承, 但是可以被重载。
3. 构造方法不能被 static、final、synchronized、abstract、native修饰,但可以被 public、private、protected修饰。
5️⃣ 在创建派生类对象,构造函数的执行顺序()
A. 基类构造函数,派生类对象成员构造函数,派生类本身的构造函数
B. 派生类本身的构造函数,基类构造函数,对象成员构造函数
C. 基类构造函数,派生类本身的构造函数,派生类对象成员构造函数
D. 对象成员构造函数,基类构造函数,派生类本身的构造函数
✏️ 解析
这道题目我们首先要了解下基类和派生类的概念
基类: 父类
派生类: 子类
翻一下题目: 在创建子类对象, 构造函数的执行顺序。
解题思路按照下面这个口诀就行:
父类的静态域-子类的静态域 父类的非静态域-父类的构造函数 子类的非静态域-子类的构造函数
规律就是父类先于子类 静态的先于非静态的其中静态域包含静态代码块与静态方法,这个谁在前面则先执行谁。
总结
今天这篇文章算是重温Java基础的第二天,本文章主要的涉及到的基础概念为: Java 访问修饰符、继承、构造方法的一些基础概念。