继承和多态选择题分享

这是一组关于Java中继承和多态的选择题,涵盖了final和abstract的使用、instanceof关键字的应用、子类与父类之间的关系、访问权限控制、抽象类和方法等内容。通过这些题目,可以加深对Java继承和多态的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、下列哪个叙述是正确的?(A)
A.不可以同时用final和abstract修饰同一个方法。

B.abstract类中只可以有abstract方法。

C.final 类可以有子类。

D.abstract类中可以有非abstract方法,但该方法不可以用final修饰。
2、假设C是B的子类,B是A的子类,cat是C类的一个对象,bird是B类的一个对象,下列哪个叙述是错误的?(D)
A.cat instanceof A的值是true。

B.cat instanceof B的值是true。

C.bird instanceof A的值是true。

D.bird instanceof C的值是true。

3、给定下列程序,正确的输出是?(D)

class Base{
   
   

Base(int i){
   
   test();}

void test(){
   
     System.out.println(<
### 关于Java继承、封装多态选择题 #### 题目一 下列哪项描述了Java中实现代码重用的主要方式? - A. 使用`import`语句引入其他包中的 - B. 利用接口定义通用行为 - C. 通过继承机制使子获得父的功能[^1] 正确答案:C 解释:项A涉及的是导入外部库或自定义包;B则是关于接口的应用,而题目所指的方式是指向子能够自动拥有来自其单一父方法与属性。 ```java class Parent { public void show() { System.out.println("Parent method"); } } class Child extends Parent {} // 子Child获得了Parent的所有非私有成员函数及变量 ``` #### 题目二 在Java里创建一个新时如何声明它为另一个现有的子? - A. `new Class SubClass(SuperClass)` - B. `SubClass extends SuperClass` - C. `SuperClass implements SubClass` - D. `SubClass implements SuperClass` 正确答案:B 解析:当希望新的成为已有的孩子时,在定义这个新的时候应该在其名称后面加上关键词`extends`以及想要扩展的那个超的名字[^2]。 ```java // 正确语法示范 public class Vehicle {} public class Car extends Vehicle {} // Car现在是Vehicle的一个子 ``` #### 题目三 下面哪个说法最能体现Java里的“封装”概念? - A. 可以被实例化成个对象 - B. 可以隐藏数据字段并通过公共方法访问这些字段 - C. 不同型的实体可以通过共同基来共享某些功能 - D. 同一可以在不同环境中展现出不同的行为模式 正确答案:B 说明:“封装”的核心在于保护内部状态的同时提供受控的数据存取途径。这通常意味着将属性设为private,并且仅允许经由getter/setter这样的公开API来进行读写操作[^5]。 ```java public class Person { private String name; public String getName() { return this.name; } public void setName(String newName) { this.name = newName; } } ``` #### 题目四 对于一个多态环境下的程序设计而言,哪一个条件不是必需满足的? - A. 至少存在两个具有相同签名但是逻辑有所差异的方法版本 - B. 所有的子都必须覆盖(override)同一个方法 - C. 创建了一个指向某个特定子的对象却将其视为更广泛的父型引用 - D. 方法调用发生在运行时期而非编译期间决定实际执行的动作 正确答案:B 理由:虽然为了达到多态效果确实需要至少有一个可覆写的父级方法,但这并不强制要求所有的派生都要这样做——只要求那些参与到了动态绑定过程之中者才行。 ```java class Animal { public void sound() {/*...*/} } class Dog extends Animal { @Override public void sound() {System.out.println("Woof");} } Animal myPet = new Dog(); myPet.sound(); // 输出"Woof" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值