日期:2014-05-19  浏览次数:20585 次

问一个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未实现的方法
------其他解决方案--------------------
无所谓,看着清楚点
------其他解决方案--------------------
引用:
注意抽象两个字,正常类实现接口需要实现接口的全部方法!但是抽象类可以实现部分方法的!这种基础,你可以自己写代码验证一哈嘛!


我验证过了。不过还是放上来问问哈!
我以为还有别的原因
------其他解决方案--------------------
引用:
C是否实现A,取决于是否想要 C 实现 A里的B未实现的方法
就是这个理
------其他解决方案--------------------
学习了从没注意过。
------其他解决方案--------------------
引用:
引用:C是否实现A,取决于是否想要 C 实现 A里的B未实现的方法就是这个理

同意~~
------其他解决方案--------------------
抽象类可以有选择的实现部分方法的,这就是它和普通类的区别。普通类必须全部实现完的
------其他解决方案--------------------
引用:
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() {

}