上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.4 习题
一、选择题
1.有关Demo类,下列哪句描述是正确的()
public class Demo extends Base{ private int count; public Demo(){ System.out.println("A Demo object has been created"); } protected void addOne() {count++; } }
A.当创建一个Demo类的实例对象时,count的值为0
B.当创建一个Demo类的实例对象时,count的值是不确定的
C.父类对象中可以包含改变count值的方法
D.Demo的子类对象可以访问count
2.当编译和运行下列程序段时,会发生下列哪能种情况()
class Base {} class Sub extends Base {} class Sub2 extends Base {} public class CEx{ public static void main(String argv[]){ Base b = new Base(); Sub s = (Sub) b; } }
A.通过编译并正常运行B.编译时出现例外C.编译通过,运行时出现例外
3.如果任何包中的子类都能访问父类中的成员,那么应使用哪个限定词()
A.public B.private C.protected D.transient
4.下面的哪个选项是正确的()
class ExSuper{ String name; String nick_name; public ExSuper(String s,String t){ name = s; nick_name = t; } public String toString(){ return name; } } public class Example extends ExSuper{ public Example(String s,String t){ super(s,t); } public String toString(){ return name +"a.k.a"+nick_name; } public static void main(String args[]){ ExSuper a = new ExSuper("First","1st"); ExSuper b = new Example("Second","2nd"); System.out.println("a is"+a.toString()); System.out.println("b is"+b.toString()); } }
A.编译时会出现异常
B.运行结果为:
a is First b is second
C.运行结果为:
a is First b is Secong a.k.a 2nd
D.运行结果为:
a is First a.k.a 1nd b is Second a.k.a 2nd
5.运行下列程序后的结果是()
abstract class MineBase { abstract void amethod(); static int i; } public class Mine extends MineBase { public static void main(String argv[]){ int[] ar = new int[5]; for(i = 0;i < ar.length;i++) System.out.println(ar[i]); } }
A.打印5个0
B.编译出错,数组ar[]必须初始化
C.编译出错,Mine应声明为abstract
D.出现IndexOutOfBoundes的异常
二、简答题
1.简单说明抽象类和接口之间的区别。
2.一个类中的多个方法在什么情况下算是重载?
三、上机题
1.定义表示学生的Student类和表示教师的Teacher类。
2.定义一个实现打印信息功能的接口,并使Student类和Teacher类都实现该接口,从而实现打印学生和教师信息的功能。