我自己做了一下关于子类继承父类实现接口的问题的测试,先看下面一段代码:- /*
- 关于子类继承父类实现接口的问题
- */
- //接口
- interface Jie
- {
- public abstract void method1();
- /*
- 如果有下面这个抽象方法,在Zi这个子类或父类中必须对其复写
- 父类中可以不用复写这个方法
- */
- //public abstract void method2();
- }
- //父类
- abstract class Fu1 implements Jie
- {
- public void method1()
- {
- System.out.println("Fu2-Jie-method1");
- }
- }
- //子类
- class Zi1 extends Fu1
- {
- public void fun1()
- {
- System.out.println("zi1-fu1-method1");
- }
- }
- //测试:
- class ZiFuJ
- {
- public static void main(String[] args)
- {
- Zi1 z = new Zi1();
- z.method1();
- z.fun1();
- }
- }
复制代码 我得出的结论,或者说我的理解是:
1、对于父类已经implements接口的,子类直接继承父类而不需要再implements这个接口了,因为继承就已经可以使用父类中的成员了,如果父类(指抽象类,不抽象就必须实现接口全部抽象方法)并未全部实现接口全部抽象方法,那么子类若要实现接口的功能,只得自己再实现一下。当然,对父类中实现接口的功能不爽,子类就得自己动手复写接口中的自己想实现的功能了。
2、对于父类未implements接口的,那么不用多说,子类必须implements接口中的所有抽象方法。
用代码表达就是:1 class Zi extends Fu implements Jie{} 2 class Zi implements Jie{} ,有了1,就可以不必写2了;加上2的必要就是说子类需要另外或者重新实现接口。
希望我这么说,对大家有帮助。
|
|