9、Java面向对象之继承和多态作业题

合集下载

Java程序设计(继承与多态)期末单元测试与答案

Java程序设计(继承与多态)期末单元测试与答案

一、单选题1、Java语言中,所创建的子类都应有一个()。

A.派生类B.子类C.抽象类D.父类正确答案:D2、如果子类构造器中没有super()出现,那么编译器则会默认加上()构造器。

A.super()B.superC.thisD.this()正确答案:A3、Java中构造方法super()的使用,下列不正确的是()。

A.直接引用B.调用子类的构造函数C.引用父类成员D.调用父类的构造函数正确答案:B4、下列说法不正确的是()。

A.在同一个类中定义的重载方法可以互相调用B.构造方法允许重载C.子类无条件的调用父类无参构造方法D.子类不允许调用父类的构造方法正确答案:D5、代码如下:Employee man = new Manager(); man.test();上述代码是()的实现。

A.方法调用B.方法重写C.对象引用D.方法重载正确答案:A6、对成员的访问控制保护最强的是()。

A.缺省B.privateC.publicD.protected正确答案:B7、下列对封装性的描述中,错误的是()。

A.封装体中的属性和行为的访问权限是相同的B.封装使得抽象的数据类型提高了可重用性C.封装体包含了属性和行为D.被封装的某些信息在封装体外是不可见的正确答案:A8、在类的修饰符中,规定只能被同一包类所使用的修饰符是()。

A.abstractB.finalC.publicD.默认正确答案:D9、在Java语言中,类方法(静态方法)可以被继承,但是不能被()。

A.重载B.继承C.重写D.重构正确答案:C10、Java中,哪种是不可以用来限制存取权限的关键字()。

A.extendsB.protectedC.publicD.private正确答案:A11、不允许作为类及类成员的访问控制符的是()。

A.protectedB.staticC.privateD.public正确答案:B12、在Java中,能使派生类的功能可以被基类的方法或引用变量所调用,向后兼容,这种方法叫做()。

面向对象测试题及答案

面向对象测试题及答案

面向对象测试题及答案一、选择题(每题2分,共20分)1. 面向对象编程(OOP)的核心概念不包括以下哪一项?A. 类B. 继承C. 多态D. 过程2. 在Java中,以下哪个关键字用于定义类?A. classB. typeC. structD. interface3. 下列哪个选项不是Java中访问控制的关键字?A. publicB. privateC. protectedD. global4. 封装是面向对象编程的一个重要特性,它主要指的是:A. 将数据和操作数据的方法组合在一起B. 将所有数据都设为公开访问C. 只允许通过特定的方法访问数据D. 将数据和方法分离5. 在Java中,以下哪个不是构造方法的特点?A. 与类名相同B. 没有返回类型C. 可以重载D. 可以被继承6. 继承在面向对象编程中允许:A. 一个类只能继承一个类B. 一个类可以继承多个类C. 一个类可以继承多个接口D. 一个类可以同时继承多个类和接口7. 接口在Java中的主要作用是:A. 定义类B. 实现多继承C. 定义方法的实现D. 定义方法的签名8. 以下哪个是Java中实现多态的方式?A. 继承B. 接口C. 重载D. 重写9. 抽象类在Java中不能:A. 被实例化B. 包含抽象方法C. 包含具体方法D. 被继承10. 下列哪个不是Java集合框架中接口?A. ListB. SetC. MapD. Array二、简答题(每题5分,共30分)1. 简述面向对象编程的三大特性。

2. 解释什么是多态,并给出一个Java中多态的例子。

3. 什么是封装?封装在Java中是如何实现的?4. 什么是接口?接口和抽象类有什么区别?5. 什么是构造方法?构造方法的作用是什么?6. 什么是继承?继承在Java中是如何实现的?三、编程题(每题25分,共50分)1. 编写一个Java程序,定义一个名为`Car`的类,包含以下属性和方法:- 属性:品牌(String类型),颜色(String类型),速度(int 类型)- 方法:启动汽车(startCar),加速(accelerate),减速(decelerate)2. 在上述`Car`类的基础上,创建一个名为`ElectricCar`的子类,继承`Car`类,并添加一个额外的属性:电池电量(int类型),并重写`startCar`方法以显示电动汽车启动的信息。

面向对象程序设计(Java)-题库

面向对象程序设计(Java)-题库

面向对象程序设计(java)题库抽题规范:(1)此题库共75道题,抽8道作为期末考试题。

其中,易8道,较易33道,较难18道,难16道.(2)按题型,第一大题抽4道,每道10分;第二大题抽2道,每道10分;第三大题抽1道,每道20分;第四大题抽1道,每道20分。

(3)按难易程度:易(1道)、较易(4道)、较难(2道)、难(1道)。

一、解答题(共40道,抽4道,每道10分,共40分)1.面向对象有哪三大特征?封装,继承,多态.2.什么是类?(易)类是定义同一类所有对象的变量和方法的蓝图或原型。

3.什么是对象?对象是类的实例;对象是通过new className产生的,用来调用类的方法;类的构造方法 .。

4.类和对象的区别是什么?java中的类是模板,而对象是依据模版产生的实体5.简述Java的封装性,如何在Java中实现封装封装性是指的把代码封装到大括号中,只能访问自己内部的数据,外边的东西访问不了。

实现为加访问权限。

6.构造方法有哪些特点方法名与类名相同,没有返回值,可以有多个重载。

7.构造方法的作用是什么?(较易)初始化对象,就是你new一个类的时候可以很方便的给你的对象里的属性赋值。

8.this在程序中所代表的意思(易)指当前对象9继承的作用是什么?(易)实现代码复用。

10.Java支持多继承吗?(易)不能。

11.子类可以继承父类的哪些成员?(较难)变量和构造方法。

12.简述构造子类对象时子类和父类构造方法执行顺序(较易)先执行父类再执行子类。

13.什么是方法的重载,如何选择被重载的方法?(较易)同一个类中如果同时存在两个以上的方法有同一个名字,在这种情况下,我们说方法被重载了,这个过程被称为重载。

14什么是方法的重写,如何选择被重写的方法?(较难)当同名方法同时存在于子类和父类中时,对于子类来说就是将继承父亲的方法重载写过了,实现功能完全和父类无关。

15.简述重载和覆盖的区别(较易)重载是让同一方法名的方法可以处理和返回不同类型的数据而覆盖是在子类中改写父类的方法16.什么是成员的隐藏?如何访问被隐藏了的父类成员?(较易)在子类对父类的继承中,如果子类的成员变量和父类的成员变量同名,此时称为子类隐藏了父类的成员变量。

JAVA面向对象基础测试题-继承-封装-多态等测试题教程文件

JAVA面向对象基础测试题-继承-封装-多态等测试题教程文件

J A V A面向对象基础测试题-继承-封装-多态等测试题JAVA面向对象基础测试题提示:本题为第一阶段,JAVA面向对象基础部分练习题,包括对象,类,继承,封装,多态,接口,内部类等等,java核心基础,适合初学者对面向对象基础的知识进行测试,以便查漏补缺。

1.程序执行的结果是:()。

01public class Point{02int y = 7;03public void step(int y) {04y += y;05System.out.println(y);06}07public static void main(String[] args) {08Point p = new Point();09p.step(10);10}11}A.14B.20C.10D.17正确答案:B解析:2.程序的执行结果是:()。

01public class Question {02private int num;03public static void main(String [] args){04Question q = new Question();q.num=13;06update(q);07System.out.println(q.num);08}09public static void update(Question q){10q.num=9;11}12}A.13B.9C.0D.4正确答案:B解析:3.程序执行的结果是:()。

01public class Answer {02public static void main(String[] args) {03int score = 20;04Answer ans= new Answer();05ans.add(score);06System.out.println(" main: score = " + score);07}08void add(int score) {09System.out.println(" add: score=" + score++);10}11A.1add: score=212main: score = 21B.1add: score=202main: score = 21C.1add: score=212main: score = 20D.1add: score=202main: score = 20正确答案:D解析:4.下列代码编译或运行的结果是:()。

java继承练习题

java继承练习题

java继承练习题Java继承练习题Java是一种面向对象的编程语言,其核心思想是将现实世界中的事物抽象为对象,并通过类的定义和实例化来描述和操作这些对象。

在Java中,继承是一种重要的机制,它允许一个类继承另一个类的属性和方法,从而实现代码的复用和扩展性。

在本文中,我们将通过一些练习题来巩固对Java继承的理解和应用。

练习题一:动物类和子类我们先定义一个动物类Animal,它具有属性name和age,并且有一个方法say()用于输出动物的叫声。

接下来,我们定义两个子类Dog和Cat,它们分别继承自Animal类,并且分别重写父类的say()方法。

其中,Dog类的say()方法输出"汪汪汪",Cat类的say()方法输出"喵喵喵"。

```javaclass Animal {protected String name;protected int age;public Animal(String name, int age) { = name;this.age = age;}public void say() {System.out.println("动物发出叫声");}}class Dog extends Animal {public Dog(String name, int age) {super(name, age);}@Overridepublic void say() {System.out.println("汪汪汪");}}class Cat extends Animal {public Cat(String name, int age) {super(name, age);}@Overridepublic void say() {System.out.println("喵喵喵");}}public class AnimalTest {public static void main(String[] args) {Animal animal = new Animal("动物", 5);animal.say();Dog dog = new Dog("小狗", 2);dog.say();Cat cat = new Cat("小猫", 1);cat.say();}}```练习题二:形状类和子类接下来,我们定义一个形状类Shape,它具有一个抽象方法area()用于计算形状的面积。

第4章-Java语言与面向对象作业习题与答案

第4章-Java语言与面向对象作业习题与答案

第4章 Java语言与面向对象作业习题与答案一、简答题1.什么是对象?什么是类?对象是一种抽象数据类型。

它包含了事物的静态特征(属性)和动态特征(行为)两大特征。

类是一组同种对象的集合与抽象。

即是具有相同属性和方法的一组对象集合。

2.Java语言的单继承是指什么?一个类可以派生出多个子类,但子类只允许有一个父类,而不允许存在多个父类。

3.在一个共有类中的数据成员与方法成员的访问控制符为缺省,则这个类可供什么样的包引用?当一个类的访问控制符为public共有时,说明这个类作为整体对其它类是可见和可引用的;但其数据成员和方法成员访问控制符为缺省时,它们只能被包中类(含当前类)引用。

4.抽象类的用途(1)设计在更高的层次上进行,不考虑具体对象,从而大大简化了处理问题的复杂性;(2)设计出的类也具有更加良好的可扩展性。

5.什么是非静态的成员变量?非静态成员即为实例成员变量(没有加static修饰的变量)。

6.异常Exception和错误Error有什么不同?Java如何处理它们?答:错误通常是指程序本身存在非法情形,常常是因为代码存在问题而引起的,如造成系统崩溃、虚拟机粗错、动态失败等,这一类错误无法恢复或不可能捕获,并将导致应用程序中断。

异常表示另外一种“非同寻常”的错误。

这种错误通常是不可预测,但可以被捕获且可以恢复。

常见的异常情况包括存不足、找不到所需文件等。

对于错误,编程人员可以通过对程序进行更仔细的检查,以避免这种错误。

对于异常,可以使用捕获机制进行捕获,再编写出相应的处理程序。

7.简单述Java的异常处理机制。

答:Java采取“抛出—捕获”的方式,一旦一个异常想象产生,Runnable环境和应用程序会抛出各种标准类型和自己定义的异常,系统就可以捕获这些异常,并一定有相应的机制来处理它,确保不会产生司机、死循环或其它对操作系统的损害,从而保证了整个程序运行的安全性。

8.简单述throw语句和throws关键字之间的差别。

java练习题答案

java练习题答案

java练习题答案第1章java语言概述习题一、填空题1、面向对象程序的主要特征:继承,__封装___,___多态_____。

2、java中的继承机制之所以能够降低程序的复杂性,提高程序的效率,主要是因为它使代码可以__重用或复用___.3、java语言中,为将源代码翻译成__字节码__文件时产生的错误称为编译错误,而将程序在运行中产生的错误称为运行错误。

4、javac是java语言中的编译器,基本语法是:javac[选项]__文件名__,java是java语言中的解释执行器,基本语法是:java[选项]___类名___.5、java语言的主要贡献者是谁Jamegoling二、单选题1、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。

A、javaB、.claC、htmlD、.e某e2、main方法是JavaApplication程序执行的入口点,关于main方法的方法首部,以下(B)项是合法的。

A、publictaticvoidmain()B、publictaticvoidmain(Stringarg[])C、publictaticintmain(String[]arg)D、publicvoidmain(Stringarg[])三、判断1、Java语言具有较好的安全性和可移植性及与平台无关等特性。

√2、Java语言的源程序不是编译型的,而是编译解释型的。

√四、问答题1、编写、运行java程序需要经过哪些主要步骤?答:1.编写源文件,扩展名必须是.java2.编写java源程序,使用java编译器编写源文件,得到字节码文件3.运行java程序,使用javaSE平台只不过的java解释器来解释执行字节码文件。

2、阅读下列java源代码文件,并回答问题publicclaSpeak{voidpeakHello(){Sytem.out.println(\);}}cla某iti8{publictaticvoidmain(Stringarg[]){Speakp=newSpeak();p.peakHello();}}(1)上述源文件的名字是什么?Speak.java(2)上述源文件编译后生成几个字节码文件,这些字节码文件的名字分别是什么?Speak.cla某iti8.cla第2章(1)基本数据类型练习题一、填空题1、java基本数据类型中整型,字符型分别占用字节数为___4___,___2____.2、java语言中的浮点数根据数据存储长度和数值精度的不同,进一步分为_float__和__double__两种具体类型。

Java题库——Chapter11继承和多态

Java题库——Chapter11继承和多态

Java题库——Chapter11继承和多态1)Analyze the following code:public class Test {public static void main(String[ ] args) {B b = new B();b.m(5);System.out.println("i is " + b.i);}}class A {int i;public void m(int i) {this.i = i;}}class B extends A {public void m(String s) {}}A)The program has a compilation error, because m is overridden with a different signature in B.B)The method m is not overridden in B. B inherits the method m from A and defines an overloaded method m in B.C)The program has a runtime error on b.i, because i is not accessible from b.D)The program has a compilation error, because b.m(5) cannot be invoked since the method m(int) is hidden in B. B中没有重写⽅法m。

B继承了A中的⽅法m,并在B中定义了⼀个重载的⽅法m。

2)Analyze the following code.// Program 1public class Test {public static void main(String[ ] args) {Object a1 = new A();Object a2 = new A();System.out.println(((A)a1).equals((A)a2));}}class A {int x;public boolean equals(A a) {return this.x == a.x;}}// Program 2public class Test {public static void main(String[ ] args) {A a1 = new A();A a2 = new A();System.out.println(a1.equals(a2));}}class A {int x;public boolean equals(A a) {return this.x == a.x;}}A)Program 1 displays true and Program 2 displays trueB)Program 1 displays false and Program 2 displays trueC)Program 1 displays false and Program 2 displays falseD)Program 1 displays true and Program 2 displays false3)Invoking ________ removes all elements in an ArrayList x. 3) _______A)x.clear() B)x.delete() C)x.remove() D)x.empty() E)x.clean()4)Analyze the following code:Cylinder cy = new Cylinder(1, 1);Circle c = cy; 4) _______A)The code has a runtime error. B)The code has a compile error. C)The code is fine.5)Which of the following statements are true? (Choose all that apply.) 5) _______A)Overloading a method is to provide more than one method with the same name but with different signatures to distinguish them.B)A private method cannot be overridden. If a method defined in a subclass is private in its superclass, the two methods are completely unrelated.C)It is a compilation error if two methods differ only in return type in the same class.D)A static method cannot be overridden. If a static method defined in the superclass is redefined in a subclass, the method defined in the superclass is hidden.E)To override a method, the method must be defined in the subclass using the same signature and compatible return type as in its superclass.1、重载⼀个⽅法是提供多个具有相同名称但具有不同签名的⽅法来区分它们。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java面向对象之继承和多态作业题
2011/9/23 ●上机要求:
使用Eclipse编写主题类、回复类
要求如下:
主题类继承帖子类,并增加属性:主题id,版块id
回复类继承帖子类,并增加属性:回复id,主题id
在帖子类中实现多态
使用super调用父类构造方法
●阶段一:
⏹需求说明:
⏹创建主题类,继承帖子类
类名Topic
属性topicId:int
boardId:int
继承
类名Tip
属性title:String
content:String
publishTime:String
uid:int
方法getInfo() :void
实现思路及关键代码:
1、创建主题类:Topic,继承帖子类:Tip
2、增加以下属性
主题id:int topicId
版块id:int boardId
3、添加setter/getter方法
4、使用从帖子类继承来的getInfo()方法,输出主题信息
package com.workit.part3;
public class Topic {
private int topicId;
private int boardTd;
public Topic(int topicId, int boardTd) {
super();
this.topicId = topicId;
}
阶段二:
需求说明:
1、创建回复类:Reply ,继承帖子类:Tip
2、增加以下属性
回复id:int replyId
主题id:int topicId
3、添加setter/getter方法
package com.workit.part3;
public class Reply {
private int topicId;
private int boardId;
private int replyId;
public int setTopicId(int topicId) {
return topicId;
}
public void getTopicId()
{
this.topicId = topicId;
}
public int setBoardId(int boardId) {
return boardId;
}
public void getBoardId()
{
this.boardId = boardId;
}
public int setReplyId(int replyId) {
return replyId;
}
public void getReply()
{
this.replyId = replyId;
}
}
package com.workit.part3;
阶段三:
⏹需求说明:
◆主题类、回复类重写帖子类输出信息的方法
⏹实现思路及关键代码:
◆1、主题类重写getInfo()方法,输出主题信息
◆2、回复类重写getInfo()方法,输出回复信息
◆3、在测试类中使用多态的方式调用getInfo()方法
package com.workit.part3;
public class Reply {
private int topicId;
private int boardId;
private int replyId;
public int getTopicId() {
return topicId;
}
public void setTopicId(int topicId) {
this.topicId = topicId;
}
public int getBoardId() {
return boardId;
}
●阶段四:
⏹需求说明:
◆1、为主题类添加无参构造方法,在该方法中使用super();,并输出“主题类的
无参构造方法”
◆2、为主题类添加有参构造方法,参数同Tip类有参构造方法,在该方法中使
用super(pTitle, pContent, pTime);,并输出“主题类的有参构造方法”
◆3、使用测试类测试主题类构造方法
package com.workit.part4;
public class Main1 {
private String title;
private String content;
private String publishTime;
public String getTitle() {。

相关文档
最新文档