问一个java基础问题
public interface A
public abstract class B implement A
public class C extends B implement A
我想问类C为什么还要实现接口A的呢?抽象类B不是实现接口A了么?
[最优解释]
可以不用实现A, 只要B里面实现A
public interface IntA {
public void test1();
}
public abstract class AbsB implements IntA{
public abstract void test2();
@Override
public void test1() {
// TODO Auto-generated method stub
System.out.println("aaa");
}
}
public class ClaC extends AbsB implements IntA{
@Override
public void test2() {
// TODO Auto-generated method stub
}
public static void main(String [] args){
ClaC c = new ClaC();
c.test1();
}
}
[其他解释]
注意抽象两个字,正常类实现接口需要实现接口的全部方法!但是抽象类可以实现部分方法的!这种基础,你可以自己写代码验证一哈嘛!
[其他解释]
接口是纯抽象类,里面都是抽象方法,而抽象类里可以有具体的方法,虽然继承了抽象类并且抽象类实现了接口,但不一定就能实现接口的所有抽象方法,所以还必须实现接口
[其他解释]
C是否实现A,取决于是否想要 C 实现 A里的B未实现的方法
[其他解释]
无所谓,看着清楚点
[其他解释]
public interface A {
void aaa();
void bbb();
}
public abstract class B implements A{
abstract void test1();
abstract void test2();
public void test3() {
}
public void aaa(){
}
}
public class C extends B {
@Override
void test1() {
// TODO Auto-generated method stub
}
@Override
void test2() {
// TODO Auto-generated method stub
}
@Override
public void bbb() {
// TODO Auto-generated method stub
}
}