求教各位详细的给小弟解惑
一、 选择
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 编译通过,运行时出现例外。
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、下面哪个语句是正确的?  
 A Object o = new Button("A");  
  B Button b=new Object("B");  
  C Panel p = new Frame();  
  D Frame f = new Panel();  
 E Panel p = new Panel();  
这题 a 项我不明白对在哪里?
------解决方案--------------------1.在创建实例时对基本数据类型默认初始化为0
2。编译通过,但在执行是会抛出一个
ClassCastException的异常,也就是说无法进行强制转化
    因为由父类转向子类是不安全的
4.创建2个对象,1个是父类,一个是子类,但都重写了Object类的toString()方法
1.Object为所有类的父类,声明时为Object类型,但实际类型为Button类型,当以后要用到o对象是要进行强制转换
------解决方案--------------------1 java 类在实例化的时候,所有的变量都会被赋给默认值,int的都是0。
2 子类的实例肯定属于父类,但是属于父类的实例不一定是子类的。
4 a 是ExSuper,而b是Example,它们调用自己的toString函数,如果自类没有toString时,才会调用父类的toString函数。
5 我不知道你的答案是什么,我试了一下,打印出了5个0。
2。1  
   一个button也是一个Object,在java里所有的类都是继承自Object.
------解决方案--------------------抽象类并不是只能由抽象类来继承。所谓抽象类是指该类中有方法没有被实现,
如第5题所示: abstract   void   amethod();  
凡是类中有方法没被实现的都成为抽象类,并注上修饰符: abstract 。