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

请帮我看一下,下面的代码为什么会报错?谢谢了
在下面的代码中,我要B类继承A类并且实现IA接口,可以报错,为什么?


public class test {

interface IA{
int i=0;
void f();
}

abstract class A{
int i =1;
void f(){
System.out.println(i);
}
}

class B extends A implements IA{---------这一句为什么报错?

}

public static void main(String[] args) {
 

}
}
------解决方案--------------------
这里的 A. f();声明成public
------解决方案--------------------
B的方法体没有实现接口IA的方法,在B的方法体里加入
public void f() {
System.out.println();
}
即可。
------解决方案--------------------
所有的接口默认都是public方法,实现他的类中的方法默认的也是public.


public class Test{
interface IA{
int i=0;
    void f(); 
}

abstract class A implements IA{
int i =1;
public void f(){//此处加上public.
System.out.println(i);
}
}

class B extends A implements IA{

}

public static void main(String[] args) {
 

}
}


------解决方案--------------------
这是接口和抽象类之间的问题,接口可以看成是一种特殊的抽象类,他们的关系是,所有的接口都是抽象类,但是每一个抽象类不一定接口,
class B extends A implements IA;这个语句是说,B类继承了A类并且实现了接口IA,
因此A类中的方法要用public修饰。