当前位置: 代码迷 >> J2SE >> 请帮小弟我看一上,上面的代码为什么会报错?多谢了
  详细解决方案

请帮小弟我看一上,上面的代码为什么会报错?多谢了

热度:7404   发布时间:2013-02-25 21:55:07.0
请帮我看一下,下面的代码为什么会报错?谢谢了
在下面的代码中,我要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) {
 

}
}所有的接口默认都是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修饰。这里的 A. f();声明成publicB的方法体没有实现接口IA的方法,在B的方法体里加入
public void f() {
System.out.println();
}
即可。
  相关解决方案