八,类的继承

本文介绍了Java编程的基础概念,包括类和对象的定义、构造方法、this关键字、静态成员、类的继承以及实践中的继承和对象数组使用。文章通过实例演示了如何创建矩形和立方体类,并在继承关系中计算它们的面积和体积。
摘要由CSDN通过智能技术生成

章节目录

标题链接
一,Java概述与Java基础http://t.csdnimg.cn/EBd3W
二,Java程序流程http://t.csdnimg.cn/k6p9l
三,Java数组http://t.csdnimg.cn/ABfr1
四,Java字符串http://t.csdnimg.cn/TrKjL
五,类和对象基础http://t.csdnimg.cn/6HRem
六,构造方法http://t.csdnimg.cn/M4gTk
七,this关键字和static关键字http://t.csdnimg.cn/wzVJs
八,类的继承http://t.csdnimg.cn/WOKIh
九,实践课堂练习http://t.csdnimg.cn/k9iix
十,封装课堂练习http://t.csdnimg.cn/oYl68
十一,多态http://t.csdnimg.cn/gFhx8
十二,抽象类http://t.csdnimg.cn/pYKtx
十三,实现接口http://t.csdnimg.cn/vXK3v

继承

一. 单选题(共20题,95.2分)

1. (单选题)下列关于类的描述中,错误的是( )。

A. 类是描述客观事物的数据模型
B. 可以用流程图来描述类的设计
C. 类的数据成员也被称作属性
D. 类的函数成员也被称作方法

我的答案: B:可以用流程图来描述类的设计;

2. (单选题)按照面向对象程序设计的观点,下列关于对象描述中错误的是( )。

A. 客观世界中的事物被称作客观对象
B. 类是描述客观对象的数据模型
C. 程序中用类定义出的对象被称作内存对象
D. 同一个类所定义出的两个内存对象可以有不同的成员

我的答案: C:程序中用类定义出的对象被称作内存对象;

3. (单选题)关于面向对象程序设计方法,下列描述中错误的是( )。

A. 面向对象程序设计方法中的类是客观事物抽象后的数据类型
B. 面向对象程序设计方法更便于代码分类管理
C. 面向对象程序设计方法所设计出的类代码不能重用
D. 面向对象程序设计方法是当今程序设计的主流方法

我的答案: C:面向对象程序设计方法所设计出的类代码不能重用;

4. (单选题)下列关于Java程序文件的描述中,错误的是( )。

A. 一个Java项目可以包含多个Java源程序文件
B. 一个Java源程序文件中可以定义多个类,但其中最多只能有一个public类
C. Java源程序文件的扩展名是.java,类程序文件的扩展名是.class
D. 编译后,一个Java源程序文件只会生成一个同名的类程序文件

我的答案: D:编译后,一个Java源程序文件只会生成一个同名的类程序文件;

5. (单选题)访问定义在public类中的默认权限成员,下列访问形式中错误的是( )。

A. 在本类中访问
B. 在同一文件的类中访问
C. 在同一包的类中访问
D. 在不同包的类中访问

我的答案: D:在不同包的类中访问;

6. (单选题)访问定义在默认权限类中的默认权限成员,下列访问形式中错误的是( )。

A. 在本类中访问
B. 在同一文件的类中访问
C. 在同一包的类中访问
D. 在不同包的类中访问

我的答案: D:在不同包的类中访问;

7. (单选题)下列关于类定义语法的描述中,错误的是( )。

A. 定义类需使用关键字class
B. 类成员包括变量成员和方法成员两种
C. 类成员的访问权限有4种
D. 类的访问权限有4种

我的答案: D:类的访问权限有4种;

8. (单选题)下列关于方法成员的描述中,错误的是( )。

A. 方法相当于是类中的函数,其功能通常是对字段成员进行处理
B. 方法包括4大要素,分别是方法名、形式参数列表、方法体和返回值类型
C. 方法可直接访问本类中的任意字段,访问时不受权限约束
D. 方法成员不能与类中的其他方法成员重名

我的答案: C:方法可直接访问本类中的任意字段,访问时不受权限约束;

9. (单选题)下列关于对象的描述中,错误的是( )。

A. 对象是用类定义的变量,也可称为是类的实例
B. 一个对象只属于某一个类
C. 一个类只能定义一个对象
D. 新建对象必须使用运算符new来为对象动态分配内存
我的答案: C:一个类只能定义一个对象;

10. (单选题)下列关于对象引用的描述中,错误的是( )。

A. 运算符new在创建对象后将返回该对象的引用
B. 一个对象可以被多个引用变量同时引用
C. 引用变量在引用一个对象之后不能再改变引用,引用其他对象
D. 当一个对象不被任何变量引用时,其内存单元将被Java虚拟机收回

我的答案: C:引用变量在引用一个对象之后不能再改变引用,引用其他对象;

11. (单选题)下列关于Java语言中变量的描述中,错误的是( )。

A. Java语言中的变量分为字段、局部变量和形参3种
B. 字段可以是基本数据类型,也可以是引用数据类型
C. 局部变量可以是基本数据类型,也可以是引用数据类型
D. 形参只能是基本数据类型,不能是引用数据类型

我的答案: D:形参只能是基本数据类型,不能是引用数据类型;

12. (单选题)下列关于参数传递的描述中,错误的是( )。

A. Java语言中方法间传递基本数据类型数据时直接传递数值,即值传递
B. Java语言中方法间传递引用数据类型数据时传递的是对象引用,即引用传递
C. 引用传递后,形参和实参将引用不同的对象
D. Java语言中,当返回值是引用数据类型时返回的是对象引用

我的答案: C:引用传递后,形参和实参将引用不同的对象;

13. (单选题)下列关于对象内存分配的描述中,错误的是( )。

A. 新建对象时,Java虚拟机会为对象的字段成员分配内存
B. 新建对象时,Java虚拟机会为对象的方法成员分配内存
C. 内存中,同类的多个对象都包含各自的字段成员
D. 同类的多个对象在内存中会共用一份方法代码

我的答案: B:新建对象时,Java虚拟机会为对象的方法成员分配内存;

14. (单选题)下列关于构造方法的描述中,错误的是( )。

A. 构造方法的名字必须与类名相同
B. 构造方法通过形参传递初始值,实现对新建对象字段成员的初始化
C. 构造方法没有返回值,其返回值类型应当定void
D. 构造方法可以重载,这样可以提供多种形式的初始化方法

我的答案: C:构造方法没有返回值,其返回值类型应当定void;

15. (单选题)下列关于静态成员的描述中,错误的是( )。

A. Java语言是纯面向对象的语言,程序中没有游离在类外的全局变量和外部函数
B. 在需要用到全局变量或外部函数的场合,可以将它们定义成类的静态成员
C. 在类中定义静态成员时,需使用关键字public进行限定
D. 静态成员是被本类所有对象共用的成员

我的答案: C:在类中定义静态成员时,需使用关键字public进行限定;

16. (单选题)下列关于访问静态成员的描述中,错误的是( )。

A. 在本类方法成员中访问静态成员直接使用成员名访问,访问时不受权限约束
B. 在类外其他方法中访问静态成员可以通过类名进行访问
C. 在类外其他方法中访问静态成员可以通过任何一个该类对象引用进行访问
D. 在类外其他方法中访问静态成员,访问时不受权限约束

我的答案: C:在类外其他方法中访问静态成员可以通过任何一个该类对象引用进行访问;

17. (单选题)下列关于对象数组的描述中,错误的是( )。

A. 对象数组中的每个元素都是一个对象引用
B. 对象数组中的每个元素都是一个对象
C. 可以访问对象数组中的数组元素
D. 可以访问对象数组中数组元素的下级成员

我的答案: B:对象数组中的每个元素都是一个对象;

18. (单选题)定义一个包含3个元素的类Circle的对象数组x,下列写法中错误的是( )。

A. Circle x[ ] = new Circle[3];
B. Circle [ ]x = new Circle[3];
C. Circle x[3] = new Circle( );
D. Circle x[ ] = {new Circle( ),new Circle( ),new Circle( )};

我的答案: C:Circle x[3] = new Circle( );;

19. (单选题)继承超类得到新的子类,子类中将不包括( )。

A. 超类的私有成员
B. 超类的保护成员
C. 超类的公有成员
D. 超类的构造方法

我的答案: A:超类的私有成员;

20. (单选题)

已定义类A:

class A {

    private int x;
    protected int y;
    public int z;
    
    public A(int p1,int p2,int p3){        //构造方法
        x = p1;  y = p2;  z = p3;
}
}

再通过继承与扩展定义了类B:

class B extends A{
    private int b;
    //定义子类B的构造方法
}

则下列子类B的构造方法定义中,正确的是( )。

A. B(int p1,int p2,int p3,int p4) {x = p1;y = p2; z = p3; b = p4;}
B. B(int p1,int p2,int p3,int p4) {A(p1,p2,p3); b = p4;}
C. B(int p1,int p2,int p3,int p4) {super(p1,p2,p3); b = p4;}
D. B(int p1,int p2,int p3,int p4) :A(p1,p2,p3){ b = p4;}

我的答案: C:B(int p1,int p2,int p3,int p4) {super(p1,p2,p3); b = p4;};

二. 资料题(共1题,4.8分)

21. (资料题)编写程序。使用继承的方法编写一个计算圆柱体积的Java程序。

要求:

1.先设计一个矩形类Rectangle。

1)包含属性长length,宽width。

2)包含一个设定默认值的无参构造方法和一个指定属性值的有参构造方法。

3)为每个属性分别创建set和get方法。

4)创建成员方法calculateArea计算矩形面积,返回面积值。

2.设计一个立方体类Cube,继承Rectangle。

1)立方体可以认为是在矩形的基础上增加了属性高height。

2)包含一个设定默认值的无参构造方法,调用父类的无参构造方法。包含一个指定属性值的有参构造方法,调用父类的构造方法。

3)为属性创建set和get方法。

4)创建成员方法calculaVolume计算立方体积,返回体积值。

3.创建测试类Test,在Test中创建主函数。创建一个矩形的对象,自行初始化,输出面积。创建一个立方体的对象,自行初始化,输出体积。

提交程序代码截图以及运行结果截图。注意编码规范。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值