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

关于接口的问题
package javan;
import java.util.*;
 interface Common{
  public abstract int ComputerTime(String v,int a,int b,int c);
}

class Car007 implements Common
{
  int A,B,C;
String car;
  public int ComputerTime(String car,int a,int b,int c)
  {
  car="Car";
  this.A=a;
  this.B=b;
  this.C=c;
  return a*b/c;
  }
}

public class Main {


  public static void main(String[] args) {
Car007 A=new Car007();
System.out.print("the car speed is " +A.ComputerTime("car", 10, 20, 30));
  }
}
为什么在Car007的ComputerTime方法必须声明为public呢?不声明的话就会报错。就解释,谢谢了.

------解决方案--------------------
因为接口中定义的方法是public,访问级别是最大的。那么在实现这个抽象方法的类中所定义的访问级别不能够小于接口中的方法访问级别。这是规定的
------解决方案--------------------
子类覆盖父类方法,不能缩小该方法的可见范围。举个简单例子:
Java code

public interface Super{
public void foo();
}

public class Sub implements Super{
private void foo(){
//do stuff
}
}