第四周课堂测试

1、下列说法正确的是(ACD)

A .使用extends关键字定义一个类的子类。

B .Java与C++类似,支持多继承,即子类可以有一个或多个父类。

C .Object是所有类的祖先类。

D .如果子类继承父类的成员变量作为自己的一个成员变量,则该成员变量可以被子类中自己定义的任何实例方法操作。

2、下列说法错误的是(AD)

A .继承的成员变量或方法的访问权限可以由子类重新定义。

B .若子类和父类不在同一包,子类只继承父类中的protected和public访问权限的方法作为子类的方法。

C .继承关系的UML类图用一个实线连接两个类,起始端是子类,重点端是父类,终点端使用空心三角形表示实线的结束。

D .如果在类本身创建一个对象,则该对象不可以通过“.”运算符访问继承的protected变量。

3、如果子类和父类不在同一包中,子类不继承父类的友好成员变量。(A)

A .true

B .false

4、instanceof主要用来判断一个类是否实现了某个接口,或者判断一个实例对象是否属于一个类。(A)

A .true

B .false

5、下列关于Override的说法,正确的是(ABC)

A .子类所声明的成员变量的名字和从父类继承来的成员变量名字相同但类型不同时,子类会隐藏所继承的成员变量。

B .除了继承的方法之外,子类新定义的方法可以操作子类继承的成员变量。

C .子类重写的方法,方法名字、参数个数、参数类型和父类的方法完全相同。

D .重写方法可以操作被子类隐藏的成员变量和方法。

6、子类在重写可以继承的方法时,可以完全按照自己的意图编写新的方法体。重写方法的类型可以是父类方法类型的子类型,不必完全一致。(A)

A .true

B .false

7、某方法在父类的访问权限是public,则子类重写时级别可以是(B)protected。

A .true

B .false

8、下列关于super关键字的说法,正确的是(ACD)

A .如果在子类中想使用被子类隐藏的成员变量或方法,就需要使用关键字super。

B .课本P123代码Example5_7.java中,Average类g()方法里“c=super.f()”调用的是Average类的float f()。

C .子类的构造方法如果没有明显地指明使用父类的哪个构造方法,子类就调用父类的不带参数的构造方法。

D .P124的程序Example5_8,如果UniverStudent子类地构造方法中省略super,则程序默认执行Student类的super()。

9、下列关于final关键字的说法,正确的是(ABCD)

A .final类不能被继承。

B .String类为final类。

C .父类的final方法子类不能重写。

D .final修饰的变量不允许被再次赋值。

10、对象的上转型对象再强制转换为一个子类对象时,该子类对象又具备了子类所有的属性和功能。(A)

A .true

B .false

11、下列说法正确的是(C)

A .父类创建的对象的引用可以赋值给子类声明的对象。

B .上转型对象不能访问子类隐藏的成员变量。

C .上转型对象不能操作子类新增的成员变量。

D .子类对象的上转型对象可以调用子类重写的静态方法。

12、父类中有个public void fight(),子类中有个public void fight( Weapon w),这两个方法的关系是Override.(B)

A .true

B .false

13、public void someMethod(int i)和public int someMethod()是方法重载。(A)

A .true

B .false

14、继承是指父类的某个方法被其子类重写时,可以产生自己的行为和功能。(B)

A .true

B .false

15、下列关于abstract关键字的说法,正确的是(BCDF)

A .可以使用static修饰abstract方法。

B .非abstract类中不可以有abstract方法。

C .不能使用new创建abstract类的对象。

D .不允许使用final和abstract同时修饰一个方法.

E .可以使用public abstract void eat(){};来声明抽象方法eat()。

F .抽象方法只保留方法的功能,而具体的执行,交给继承抽象类的子类,由子类重写此抽象方法。

16、下列说法正确的是(C)

A .子类继承父类的构造方法。

B .abstract类的子类必须是非abstract类。

C .子类继承的方法只能操作子类继承和隐藏的成员变量。

D .子类重写或新增的方法也能直接操作被子类隐藏的成员变量。

17、下列注释的哪些代码(A、B、C、D)无法通过编译?(CD)

class Father {
private int money =12;
float height;
int seeMoney(){
return money ; //A
}
}
class Son extends Father {
int height;
int lookMoney() {
int m = seeMoney(); //B
return m;
}
}
class E {
public static void main(String args[]) {
Son erzi = new Son();
erzi.money = 300; //C
erzi.height = 1.78F; //D
}
}

A .A

B .B

C .C

D .D

18、下列注释的哪个代码(A、B、C、D)无法通过编译?(D)

class A {
static int m;
void f(){
m = 20 ; //A
}
}
class B extends A {
void f() //B
{ m = 222 ; //C
}
}
class E {
public static void main(String args[]) {
A.f(); // D
}
}

A .A

B .B

C .C

D .D

19、下列代码中标注的(A,B,C,D)中,哪一个是错误的?(B)

abstract class Takecare {
protected void speakHello() {} //A
public abstract static void cry(); //B
static int f()
{ return 0 ;} //C
abstract float g(); //D
}

A .A

B .B

C .C

D .D

20、下列注释的哪个代码(A、B、C、D)无法通过编译?(D)

abstract class A {
abstract float getFloat (); //A
void f() //B
{ }
}
public class B extends A {
private float m = 1.0f; //C
private float getFloat () //D
{ return m;
}
}

A .A

B .B

C .C

D .D

21、将下列哪个代码(A,B,C,D)放入程序中标注的【代码】处将导致编译错误?(B)

class A {
public float getNum() {
return 3.0f;
}
}
public class B extends A {
【代码】
}

A .public float getNum(){return 4.0f;}

B .public void getNum(){ }

C .public void getNum(double d){ }

D .public double getNum(float d){return 4.0d;}

22、对于下列代码,下列哪个叙述是正确的?(A)

class A {
public int i=0;
A(int m) {
i = 1;
}
}
public class B extends A {
B(int m) {
i = 2;
}
public static void main(String args[]){
B b = new B(100);
System.out.println(b.i); //【代码】
}
}

A .程序提示编译错误(原因是A类没有不带参数的构造方法)

B .编译无错误,【代码】输出结果是0。

C .编译无错误,【代码】输出结果是1。

D .编译无错误,【代码】输出结果是2。

23、下列关于接口的说法,正确的是(BCD)

A .接口体中包含常量、变量和抽象方法三部分。

B .使用关键字interface来定义一个接口。

C .接口体中所有抽象方法的访问权限一定都是public。

D .接口体中只有抽象的方法,没有普通方法。

24、接口体中所有的常量的访问权限都是public,而且都是static常量。(A)

A .true

B .false

25、下列关于实现接口的说法,正确的是(ABC)

A .一个类需要在类声明中使用关键字implements声明该类实现一个或多个接口。

B .如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中的所有方法。

C .类重写接口方法时,方法的访问权限一定要明显地用public修饰。

D .子类既可以重写接口中的方法,也可以直接拥有接口中的方法。

26、下列说法错误的是(C)

A .public接口可以被任何一个类实现。

B .友好接口可以被与该接口在同一包中的类实现。

C .可以通过关键字implements声明一个接口是另一个接口的子接口。

D .子接口将继承父接口中的全部方法和常量。

27、下列说法正确的是(BD)

A .UML通过使用实线连接类和它的接口。

B .通过import语句可以引入包中的接口。

C .接口可以调用类中的其他的非接口方法。

D .接口属于引用型变量。

28、下列关于接口的说法,错误的是(D)

A .接口没有提供构造方法。

B .接口中的方法默认使用public、abstract修饰。

C .接口中的属性默认使用public、static、final修饰。

D .接口不允许多继承。

29、接口可以使用new运算符直接产生对象。(B)

A .true

B .false

30、下列说法正确的是(D)

A .一个类最多可以实现两个接口。

B .如果一个抽象类实现某个接口,那么它必须要重写接口中的全部方法。

C .如果一个非抽象类实现某个接口,那么它可以只重写接口中的部分方法。

D .允许接口中只有一个抽象方法。

31、下列四个接口中,错误的是(AB)

interface Takecare {
protected void speakHello(); //A
public abstract static void cry(); //B
int f(); //C
abstract float g(); //D
}

A .A

B .B

C .C

D .D

32、将下列(A,B,C,D)哪个代码替换下列程序中的【代码】不会导致编译错误?(B)

interface Com {
int M = 200;
int f();
}
class ImpCom implements Com {
【代码】
}

A .public int f(){return 100+M;}

B .int f(){return 100;}

C .public double f(){return 2.6;}

D .public abstract int f();

33、下列哪个代码替换程序中的【代码】不会导致编译错误?(C)

interface A {
abstract int getNumber();
}
class B implements A{
【代码】
}

A .protected int getNumber() {return 100;}

B .int getNumber() {return 100;}

C .public int getNumber() {return 100;}

D .int getNumber() {return ‘a’+‘b’}

34、XX是一个引用型变量,System.out.println(XX)等价于System.out.println(XX.toString()).(A)

A .true

B .false

35、接口中 int STOP等价于public static final int STOP.(A)

A .true

B .false

36、public void someMethod(int i)和public int someMethod()是方法重载。(A)

A .true

B .false

37、如果有以下程序片段:

interface Some{
protected void dosome ();
}
class SomeImpl implements Some {
public void dosome(){
System.out.println("做一些事");
}
}
public class Main{
public static void main (String [] args) {
Some s= new SomeImpl();
s.dosome ();
}
}

以下描述正确的是(A)

A .编译失败

B .显示“做一些事”

C .发生ClassCastException

D .执行时不显示任何信息

38、如果有以下程序片段

interface Some{
int x = 10;
}
public class Main{
public static void main (String [] args) {
System.out.println(Some.x);
}
}

以下描述正确的是(B)

A .编译失败

B .显示10

C .必须创建Some实例才能存取x

D .显示0

39、如果有以下程序片段

interface Some{
void dosome ();
}
class SomeImpl implements Some {
void dosome(){
System.out.println("做一些事");
}
}
public class Main {
public static void main (String [] args) {
Some s= new SomeImpl();
s.dosome ();
}
}

以下描述正确的是(A)

A .编译失败

B .显示“做一些事”

C .发生ClassCastException

D .执行时不显示任何信息

40、如果有以下程序片段

interface Some{
void dosome ();
}
class SomeImpl implements Some {
public void dosome(){
System.out.println("做一些事");
}
}
public class Main {
public static void main (String [] args) {
Some s= new SomeImpl();
s.dosome ();
}
}

以下描述正确的是(B)

A .编译失败

B .显示“做一些事”

C .发生ClassCastException

D .执行时不显示任何信息

41、如果有以下程序片段

interface Some{
void dosome ();
}
abstract class AbstractSome implements Some {
public abstract void doSome();
public void doService() {
System.out.println("做一些服务");
}
}
public class FinallyDemo {
public static void main (String [] args) {
AbstractSome s = new AbstractSome();
s.doService();
}
}

以下描述正确的是(A)

A .编译失败

B .显示“做一些服务”

C .发生ClassCastException

D .执行时不显示任何信息

42、如果有以下程序片段

interface Some {
protected static final int x = 10;
}
public class Main {
public static void main(String [] args) {
System.out.println("Some.x");
}
}

以下描述正确的是:(A)

A .编译失败

B .显示10

C .必须创建Some实例才能存取x

D .显示0

20145209刘一阳《JAVA程序设计》第四周课堂测试的更多相关文章

  1. 20172306 2018-2019《Java程序设计与数据结构课堂测试补充报告》

    学号 2017-2018-2 <程序设计与数据结构>课堂测试补充报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 刘辰 学号:20172306 实验教师:王志强 必 ...

  2. 20145209刘一阳《JAVA程序设计》课堂测试总结

    20145209刘一阳<JAVA程序设计>课堂测试总结 这次重新学习JAVA这门课,我对本学期没有参与的测试进行了总结并制作成二维码方便老师检查,详细内容如下: 第一周课堂测试### ht ...

  3. 20145209刘一阳《JAVA程序设计》第1周学习总结

    20145209刘一阳<JAVA程序设计>第1周学习总结 本周任务 了解Java基础知识 了解JVM.JRE与JDK,并下载.安装.测试JDK 了解PATH.CLASSPATH.SOURC ...

  4. 20145209 2016-2017-2 《Java程序设计》课堂实践内容

    20145209 2016-2017-2 <Java程序设计>课堂实践内容 一.递归 题目详情: public class TestArgs{ public static void mai ...

  5. 20145209 2016-2017-2 《Java程序设计》第8周学习总结

    20145209 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 1.java.util.logging包提供了日志功能相关类与接口. 2.使用日志的起点是L ...

  6. 20145209 2016-2017-2 《Java程序设计》第6周学习总结

    20145209 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 4.1 Y86指令集体系结构 •有8个程序寄存器:%eax.%ecx.%edx.%ebx.% ...

  7. 20145209 2016-2017-2 《Java程序设计》第7周学习总结

    20145209 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 read()每次读入一个字节. eg:short2个字节,2=0x0201,读入后要0x & ...

  8. 20145209 2016-2017-2 《Java程序设计》第5周学习总结

    20145209 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 异常处理 & Collection与Map 异常继承架构 错误的对象继承java.l ...

  9. 20145209 2016-2017-2 《Java程序设计》课程总结

    20145209 2016-2017-2 <Java程序设计>课程总结 每周作业链接汇总 预备作业01 http://www.cnblogs.com/liuyiyang/p/6194319 ...

随机推荐

  1. Enum,Int,String的互相转换

    Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用Int32.编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举. 注意:枚举类型的基类 ...

  2. C# 中 DataTable 使用详解。

    在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结. 一.DataTable简 ...

  3. Vue2学习笔记:组件(Component)

    组件 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素, Vue.js 的编译器为它添加特殊功能.在有些情况 ...

  4. 在centos系统安装mongodb

    在Linux CentOS系统上安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行“php -v”命令查看当前php版本信息时时, ...

  5. Mysql使用binlog恢复数据解决误操作问题的两种方法

    为保证没有其他参数配置影响,重新安装配置了一台最小化安装的CentOS7虚拟机 1. 基础知识
 安装mysql5.6数据库Mysql binlog初步理解 2. 配置mysql 开启binlog.修 ...

  6. @private、@protected与@public三者之间的区别

    @private.@protected与@public三者之间的区别 类之间关系图 @private只能够使用在声明的类当中,其子类也不能够使用用@private声明的实例变量 @protected只 ...

  7. java中判断对象中属性值是否为空的函数

    public boolean checkObjFieldIsNull(Object obj) throws IllegalAccessException { boolean flag = false; ...

  8. mysql8.0 安装

    之前一直使用的是zabbix3.4和mariadb5.5;感觉良好!!!但是...因其他原因需要重新部署 这次规划使用zabbix4.0和mysql8.0结合使用:嗯~~应该不会错吧!!! zabbi ...

  9. mac osx 升级到10.10 软件无法打开的问题

    osx升级到10.9.5 和10.10后,很多软件出现无法打开的问题, This patch seems to be corrupted.Please make sure you get your p ...

  10. python多进程(二)

    之前实现的数据共享的方式只有两种结构Value和Array.Python中提供了强大的Manager专门用来做数据共享的,Manager是进程间数据共享的高级接口. Manager()返回的manag ...