从零开始学Java Web开发
上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类都实现该接口,从而实现打印学生和教师信息的功能。