本人自学java,水平太菜,想问大侠们一些很菜的问题1.在接口里面的方法不能有参数列表吗?2.在父类中,如果一个方法中有参数列表,那么在子类中如何继承有参数的父类的方法呢?3.程序中这么一段代码,出错的地方请标出来,并说明理由
class Test{
     compare(int j){
         System.out.println("中国");
     }
}class Test2 extends Test{
      super.compare(int j);      
}

解决方案 »

  1.   

    1、可以有参数列表。
    2、子类中什么也不做,就自动继承父类的方法。
    3、class Test{
      compare(int j){ //未声明返回值类型,如果没有返回值,应该在前面写void
      System.out.println("中国");
      }
    }class Test2 extends Test{
      //super.compare(int j);  //这句话不需要 
    }
      

  2.   

    另外,对于问题3,我想你可能把覆盖和继承混淆了。如果想要覆盖,那么:class Test{
      void compare(int j){ //前面声明void类型,不返回值
      System.out.println("中国");
      }
    }class Test2 extends Test{
      void compare(int j){  //与父类的方法一摸一样地声明一个,因为要覆盖它。
        super.compare(int j);   //这句话先去执行父类compare的功能,可能你说的继承是指这个,但用词让人误解。
        // ……    //其他后续代码,实现个性化功能。
      }
    }
      

  3.   

    1.在接口里面的方法不能有参数列表吗?
                    可以有参数列表,在接口中方法没有方法体,没有具体实现
         public static void show(String str,int i);
    2.在父类中,如果一个方法中有参数列表,那么在子类中如何继承有参数的父类的方法呢?
         只要之类继承了父类,那么之类就会拥有父类的非私有成员
      可以通过this和super访问
      class Test{
      compare(int j){//在这里编译出错:reason:没有返回类型   void compare(int j){打印}正确写法
      System.out.println("中国");
      }
    }class Test2 extends Test{
      super.compare(int j); //这行带面编译出错:reason:在类中如果想要访问超类成员并且用super.成员的方式进行访问需要将super.成员放置方法或构造之中  
    }下面写法:class Test{
     void compare(int j){
      System.out.println("中国");
      }
    }class Test2 extends Test{
         public Test2(int j){
            super.compare(j);//调用超类方法
         }   
    }