java复习练习题继承.docx
《java复习练习题继承.docx》由会员分享,可在线阅读,更多相关《java复习练习题继承.docx(35页珍藏版)》请在冰豆网上搜索。
java复习练习题继承
一.extends和super的使用和方法的重写
1.定义一个人的类〔属性有名字,年龄。
写一个能输出各个属性值的方法showInfo〔〕〕,定义一个学生类〔属性有性别〕,学生继承人类
要求:
〔1〕父类的属性赋值用构造方法来实现〔分别用有参数构
造方法和无参数构造方法实现〕
(2〕子类的属性也用构造方法来赋值。
(3〕在子类中重写父类的showInfo〔〕方法
(4〕声明学生类的对象,调用学生的显示信息的方法。
2
定义Animal父类,含有属性name,sex,age,方法sleep,run,编
写一个子类Person,继承Animal类,尔后调用父类的属性和方法
二.
1、试编写三个拥有继承关系的类,A、B、C〔B继承A,C继承B〕。
要求A中包括方法a1()、a2(),B类中的方法b1()接见了a1()
和a2(),C类中的方法c1()接见了a1()、a2()、b1()。
提示:
〔a1(),a2(),b1(),c1()这些方法体除了实现题目要求之外,其余内容能够任意编写。
〕
2、请编码实现动物世界的继承关系:
动物〔Animal〕拥有行为:
吃〔eat〕、睡觉〔sleep〕
动物包括:
兔子〔Rabbit〕,老虎〔Tiger〕
这些动物吃的行为各不相同〔兔子吃草,老虎吃肉〕;但睡
觉的行为是一致的。
请经过继承实现以上需求,并编写测试类AnimalTest进行测试。
3、父类Person包括like〔〕方法子类Son重写父类方法并打印
输出
4、(选做)父类Employee属性:
name、sex,带一个构造方法
Employee(Stringn,chars)
子类Worker继承自Employee属性:
charcategory;法〔〕能够调用父
类的全部非私有方法
B)super〔〕能够调用父类的全部非私有构造函数
C)super.属性能够调用父类的全部非私有属性
D)this和super要点字能够出现在同一个构造函数中
8.以下关于final要点字说法错误的选项是〔A,C〕〔两项〕
A)final是java中的修饰符,能够修饰类、接口、抽象类、方法和属性
B)final修饰的类必然不能够被继承
C)final修饰的方法不能够被重载
D)final修饰的变量不相赞同被再次赋值
9.接见修饰符作用范围由大到小是〔D〕
A)private-default-protected-public
B)public-default-protected-private
C)private-protected-default-public
D)public-protected-default-private
10.以下〔D〕不是Object类的方法
A)clone〔〕
B)finalize〔〕
C)toString〔〕
D)hasNext〔〕
11.多态的表现形式有〔A〕
A)重写
B)抽象
C)继承
D)封装
12.以下对重载描述错误的选项是〔B〕
A)方法重载只能发生在一个类的内部
B)构造方法不能够重载
C)重载要求方法名相同,参数列表不相同
D)方法的返回值种类不是区分方法重载的条件
13.以下〔D〕增加到ComputerBook中不会出错
classBook{
protectedintgetPrice(){
return30;
}
}
publicclassComputerBookextendsBook{
}
A)protectedfloatgetPrice(){}
B)protectedintgetPrice(intpage){}
C)intgetPrice(){}
D)publicintgetPrice(){return10;}
14.以下对抽象类的描述正确的选项是〔C〕
A)抽象类没有构造方法
B)抽象类必定供应抽象方法
C)有抽象方法的类必然是抽象类
D)抽象类能够经过new要点字直接实例化
15.以下对接口描述错误的有〔D〕
A)接口没有供应构造方法
B)接口中的方法默认使用public、abstract修饰
C)接口中的属性默认使用public、static、final修饰
D)接口不允好多继承
16.以下代码,描述正确的有〔A〕
interfaceIDemo{
publicstaticfinalStringname;1
voidprint();2
publicvoidgetInfo();3
}
abstractclassPersonimplementsIDemo{4
publicvoidprint(){
}
}
A)第1行错误,没有给变量赋值
B)第2行错误,方法没有修饰符
C)第4行错误,没有实现接口的全部方法
D)第3行错误,没有方法的实现
D)abstract
C)abstract
B)abstract
A)abstract
17.接口和抽象类描述正确的有〔B,C〕〔两项〕
A)抽象类没有构造函数
B)接口没有构造函数
C)抽象类不允好多继承
D)接口中的方法能够有方法体
18.以下描述错误的有〔C〕
能够修饰类、接口、方法修饰的类主要用于被继承能够修饰变量
修饰的类,其子类也能够是abstract修饰的
19.以下描述正确的有〔B〕
A)方法的重写应用在一个类的内部
B)方法的重载与返回值种类没关
C)构造方法不能够重载
D)构造方法能够重写
20.以下程序运行结果是〔A〕
publicclassTestextendsFather{
privateStringname=〞test〞;
publicstaticvoidmain(String[]args){
Testtest=newTest();
}
}
classFather{
privateStringname=〞father〞;
publicStringgetName(){
returnname;
}
}
A)father
B)test
C)编译出错
D)运行出错,无输出
21.以下对异常的描述不正确的有〔C〕
A)异常分为Error和Exception
B)Throwable是全部异常类的父类
C)Exception是全部异常类父类
D)Exception包括RuntimeException和RuntimeException之外的异常
22.在try-catch-finally语句块中,以下能够单独与finally一起使用的是〔B〕
A)catch
B)try
C)throws
D)throw
23.下面代码运行结果是〔B〕
publicclassDemo{
publicintadd(inta,intb){
try{
returna+b;
}catch(Exceptione){
语句块〞);
}finally{
语句块〞);
}
return0;
}
publicstaticvoidmain(String[]args){
Demodemo=newDemo();
和是:
〞+(9,34));
}
}
A)编译异常
B)finally语句块和是:
43
C)和是:
43finally
语句块
D)catch
语句块和是:
43
24.
以下描述不正确的有〔
D〕
A)try块不能够够省略
B)能够使用多重catch块
C)finally块能够省略
D)catch块和finally块能够同时省略
25.以下对自定义异常描述正确的选项是〔C〕
A)自定义异常必定继承Exception
B)自定义异常能够继承自Error
C)自定义异常能够更加明确定位异常出错的地址和给出详细出错信息
D)程序中已经供应了丰富的异常类,使用自定义异常没有意义
26.以下程序运行结果是〔D〕
publicclassTest{
publicintdiv(inta,intb){
try{
returna/b;
}catch(Exceptione){
}catch(NullPointerExceptione){
}
catch(ArithmeticExceptione){
}finally{
}
return0;
}
publicstaticvoidmain(String[]args){
Testdemo=newTest();
商是:
〞+(9,0));
}
}
A)Exceptionfinally商是:
0
B)ArithmeticExceptionfinally商是:
0
C)finally商是:
0
D)编译报错
27.以下对TCP和UDP描述正确的选项是〔D〕
A)TCP不能够供应数据的可靠性
B)UDP能够保证数据库的可靠性
C)TCP数据传输效率高于UDP
D)UDP数据传输效率高于TCP
28.在Java中,下面关于构造函数的描述正确的选项是〔D〕。
〔选择一项〕
A)类必定显示定义构造函数
B)构造函数的返回种类是void
C)构造函数和类有相同的名称,并且不能够带任何参数
D)一个类能够定义多个构造函数
29.依照下面的代码,
Strings=null;
会抛出NullPointerException异常的有〔A,C〕。
[两项]
A)if((s!
=null)&()>0))
B)if((s!
=null)&&()>0))
C)if((s==null)|()==0))
D)if((s==null)||()==0))
30..在Java中,关于HashMap类的描述,以下廉洁错误的选项是(B)。
A)HashMap使用键/值得形式保存数据
B)HashMap能够保证其中元素的序次
C)HashMap赞同将null用作键
D)HashMap赞同将null用作值
31.
以下选项中关于java中super要点字的说法错误的选项是〔
B〕
A)super
要点字是在子类对象内部指代其父类对象的引用
B)super
要点字不但能够指代子类的直接父类,还可以够指代父类的父类
C)
子类能够经过
super要点字调用父类的方法
D)
子类能够经过
super要点字调用父类的属性
32.
在Java中,以下代码(A)正确地创立了一个InputStreamReader
对象。
A)InuptStreamReader(newFileInputStream(
“〞));
B)InuptStreamReader(newFileReader(“〞));
C)InuptStreamReader(newBufferReader(
“〞));
D)InuptStreamReader(“〞);
33.在Java中,(D)类供应定位当地文件系统,对文件或目录及其属性进行根本操作。
A)FileInputStream
B)FileReader
C)FileWriter
D)File
34.Java中的会集类包括ArrayList、LinkedList
错误的选项是〔C〕〔选择一项〕
A)ArrayList和LinkedList均实现了List接口
B)ArrayList的接见速度比LinkedList快
、HashMap等类,以下关于会集类描述
C)增加和删除元素时,ArrayList的表现更佳
D)HashMap实现Map接口,它赞同任何种类的键和值对象,并赞同将null用作键或值
35.在Java中开发JDBC应用程序时,使用DriverManager类的getConnection〔〕方法建立与数据源的连接语句为:
Connectioncon=(“jdbc:
odbc:
news〞);
URL连接中的〞news〞表示的是〔C〕〔选择一项〕
A)数据库中表的名称
B)数据库效劳器的机器名
C)数据源的名称
D)用户名
36.在Java中,JDBCAPI定义了一组用于与数据库进行通信的接口和类,它们包括在〔B〕
包中。
A)
B)
C)
D)
37.Java中,以下(B)接口以键_值对的方式储藏对象。
A)
B)
C)
D)
38.以下关于对象序列化描述正确的选项是〔C,D〕[两项]
A)使用FileOutputStream能够将对象进行传输
B)使用PrintWriter能够将对象进行传输
C)使用ObjectOutputStream类达成对象储藏,使用
D)对象序列化的所属类需要实现Serializable接口
ObjectInputStream
类达成对象读取
39.在Java中,(A)类可用于创立链表数据构造的对象。
A)LinkedList
B)ArrayList
C)Collection
D)HashMap
40.解析下面这段Java代码,它的运行结果是(C)。
Import.*;
PublicclassB{
Publicstaticvoidmain(string[]args){
inti=12;
A)100
B)0
C)-120
D)程序无法编译
41.使用JDBC事务的步骤是〔C,A,B,D〕〔多项选择〕
A)取消Connection的事务自动提交方式
B)发生异常回滚事务
C)获取Connection对象
D)操作达成提交事务
42.以下对JDBC事务描述错误的选项是〔B〕
A)JDBC事务属于JAVA事务的一种
B)JDBC事务属于容器事务种类
C)JDBC事务能够保证操作的完满性和一致性
D)JDBC事务是由Connection倡导的,并由Connection控制
43.要经过可转动的结果集更新数据,以下正确的选项是〔A
A)pst=(sql,,
B)pst=(sql,,
C)pst=(sql,Resu
D)pst=(sql,
44.储藏过程pro有两个参数,第一个为输入参数,第二个为输出参数,以下代码正确的选项是〔C〕
A)CallableStatementcst=(
“(callpro(,))
〞);
B)CallableStatementcst=(
“(callpro())
〞);
C)CallableStatementcst=(
“{callpro(,)}
〞);
D)CallableStatementcst=(
“{callpro(,,)}
〞);
45.以下描述正确的选项是(B)
A)CallableStatementB)PreparedStatement
是PreparedStatement
是CallableStatement
的父接口
的父接口
C)CallableStatement是Statement的子接口
D)PreparedStatement是Statement的父接口
46.要删除book表中书籍(bookName)是〞java〞的记录,以下代码正确的选项是〔AStringsql=〞deletefrombookwherebookName=〞;PreparedStatementpst=(sql);
______________________________
();
A)(1,〞java〞);
B)(0,〞java〞);
C)(0,〞java〞);
D)以上选项都不正确
47.获取ResutlSet对象rst的第一行数据,以下正确的选项是〔B〕
A)();
B)();
C)();
D)();
48.以下能够正确获取结果集的有〔AD〕〔多项选择〕
A)Statementsta=();
ResultSetrst=(“select*frombook〞);
B)Statementsta=(“select*frombook〞);ResultSetrst=();
C)PreparedStatementpst=();
ResultSetrst=(“select*frombook〞);
D)PreparedStatementpst=(“select*frombook〞);
ResultSetrst=();
49.以下负责建立与数据库连接的是〔D〕
A)Statement
B)PreparedStatement
C)ResultSet
D)DriverManager
50.使用JDBC连接数据库的序次是〔B,A,D,C,E〕〔多项选择〕
A)加载驱动
B)导入驱动包
C)发送并办理SQL语句
D)建立于数据库的连接
E关闭连接
二、简答题〔各
5分,共
25分〕
1、在
java
中若是声明一个类为
final
,表示什么意思
〔不计分〕
答:
final是最后的意思,
final
可用于定义变量、方法和类但含义不相同,声明为
final
的
类不能够被继承。
1、父类的构造方法可否能够被子类覆盖〔重写〕
答:
父类的构造方法不能够够被子类覆盖,因为父类和子类的类名是不能能相同的。
2、请表达
String
和
StringBuffer
的差异。
答:
String类所定义的对象是用于存放〞长度固定〞的字符串。
StringBuffer类所定义的对象是用于存放〞长度可变动〞的字符串。
3、若是有两个类A、B〔注意不是接口〕,你想同时使用这两个类的功能,那么你会如何编写这个C类呢
答:
因为类A、B不是接口,所以是不能够够直接继承的,但能够将A、B类定义成父子类,那么C类就能实现A、B类的功能了。
假设A为B的父类,B为C的父类,此时C就能实现A、
B的功能。
4、结合
Java
视频
Lesson5〔多线程〕,解析
sleep()
和
wait()
方法的差异。
答:
Sleeping睡眠的意思
程将进入就绪状态。
:
sleep()
方法用到暂时中止执行的线程。
在睡眠后,线
waiting
等待的意思
:
若是调用了
wait()
方法,线程将处于等待状态。
用于在两个或
多个线程并发运行时。
5、谈谈你对抽象类和接口的理解。
答:
定义抽象类的目的是供应可由其子类共享的一般形式、子类能够依照自己需要扩展抽象
类、抽象类不能够实例化、抽象方法没有函数体、抽象方法必定在子类中给出详细实现。
他使
用extends来继承。
接口:
一个接口赞同一个类从几个接口继承而来,Java程序一次只能继承一个类但能够实
现几个接口,接口不能够有任何详细的方法,接口也可用来定义可由类使用的一组常量。
其实
现方式是interface来实现。