class A{
    public static void prt(){
        System.out.println("1");
    }
    public A(){
        System.out.println("A");
    }
}
public class B extends A{
    public static void prt(){
        System.out.println("2");
    }
    public A(){
        System.out.println("B");
    }
    public static void main(String[] args){
        A a=new B();
        a=new A();
    }
}
求输出结果并求原因,谢谢!

解决方案 »

  1.   

    class A{ 
        public static void prt(){ 
            System.out.println("1"); 
        } 
        public A(){ 
            System.out.println("A"); 
        } 

    public class B extends A{ 
        public static void prt(){ 
            System.out.println("2"); 
        } 
        public B(){ 
            System.out.println("B"); 
        } 
        public static void main(String[] args){ 
            A a=new B(); 
            a=new A(); 
        } 

    你代码写错了,B的构造函数应该是B ,否则运行失败
      

  2.   

    ...谢谢楼上的,copy过来忘记改了
      

  3.   

    首先实例子类的话 会调用父类的构造器!结果应该为 ABA
      

  4.   

    结果
    A
    B
    A
    new B()//如果有父类先调用父类构造器,然后在调用子类
    还有静态方法不能多态
      

  5.   

    good enough
    接分,楼上的~~
      

  6.   

    结果 是
    A
    B
    AA a=new B();// 首先要调用父类的构造器A,然后自己的构造器B
    a=new A();  // new A 当然要调用父类的构造器了
      

  7.   

    public static void prt(){}这个函数你写不写没有用啊。下面你又没调用.