class Base{ 
  public void Base(){ 
    System.out.println("Base"); 
  } 

public class In extends Base{ 
  public static void main(String argv[]){ 
    In i=new In(); 
  } 

//why no output in runtime !

解决方案 »

  1.   

    public class Base {   public  Base(){ 
      
        System.out.println("Base"); 
        
      } 
      

    ####################################
    public class In extends Base {   public static void main(String[] args){ 
      
        In i= new In(); 
        
      }
       

    ################################
    有结果!我看了
      

  2.   

    哈哈哈。
    原来你的构造函数定义为void的了!
    刚才怎么没有发现呢?
    还是年轻啊!
      

  3.   

    class Base{ 
      Base(){ 
        System.out.println("Base"); 
      } 

    public class In extends Base{ 
      public static void main(String argv[]){ 
        In i=new In(); 
      } 
    }
      

  4.   

    晕,我问一下为什么没有output?
      

  5.   

    因为你把构造方法申明成了void,所以他不再是构造方法了
    去掉void就好了
      

  6.   

    顶 !!!
    是不是构造方法 一定不能是VOID呢?
      

  7.   

    构造函数是特殊方法,没有返回类型,所以不能加void。
      

  8.   

    对的,构造方法没有返回值。普通方法如果和类同名也不会报错,只是它有返回值。
    楼主的void Base()是个普通方法,所以在构造子类的时候没有去调用父类的方法。
      

  9.   

    class Base{ 
      public void Base(){ 
        System.out.println("Base"); 
      } 

    public class In extends Base{ 
      public static void main(String argv[]){ 
        In i=new In(); 
      } 
    } java中的构造方法前面不能有类型,去掉void就可以了。
      

  10.   

    在楼住的题目中 没有调用构造方法  ,那他怎么输出"BASE"呢?是不是对过创建的对象IN啊?谢谢   初学 多多指点