日期:2014-05-20  浏览次数:20874 次

接口
本人自学java,水平太菜,想问大侠们一些很菜的问题

1.在接口里面的方法不能有参数列表吗?

2.在父类中,如果一个方法中有参数列表,那么在子类中如何继承有参数的父类的方法呢?

3.程序中这么一段代码,出错的地方请标出来,并说明理由
class Test{
  compare(int j){
  System.out.println("中国");
  }
}



class Test2 extends Test{
  super.compare(int j);  
}

------解决方案--------------------
另外,对于问题3,我想你可能把覆盖和继承混淆了。如果想要覆盖,那么:
Java code

class Test{
  void compare(int j){ //前面声明void类型,不返回值
  System.out.println("中国");
  }
}



class Test2 extends Test{
  void compare(int j){  //与父类的方法一摸一样地声明一个,因为要覆盖它。
    super.compare(int j);   //这句话先去执行父类compare的功能,可能你说的继承是指这个,但用词让人误解。
    // ……    //其他后续代码,实现个性化功能。
  }
}

------解决方案--------------------
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);//调用超类方法
}
}