首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

实现接口的一个小疑点

2012-06-05 
实现接口的一个小问题假设有一个接口为implementable。另外类implemented 实现了这个接口,接口interface2继

实现接口的一个小问题
假设有一个接口为implementable。另外类implemented 实现了这个接口,接口interface2继承了该接口且添加了一个新的方法。
现在有一个类A,它继承了implemented,并且要实现interface2。它只需实现新的方法newMethod吗?是因为它的父类已经实现了其他两个方法method1和method2吗?可是这两个方法是其父类implemented的,类A只是能访问而已呀、、我有些糊涂了。像各位求教。

Java code
Interface implementable {    method1();    method2();}Class implemented implements implementable {    //implementation}Interface interface2 extends implementable {    newMethod();}Class A extends implemented implements interface2 {    //code}


[解决办法]
class implemented必须实现implementable的两个方法,否则编译不过。

继承interface2的类必须实现三个方法,一个method1(),method2(),newMethod()。

Class A只需要实现一个方法newMethod(),因为父类中的implemented已经实现了 method1();method2();
[解决办法]
对父类里面实现了该接口的两个方法,子类继承了也相当于实现改接口了,子类只要再实现新接口的方法即可,如果你不想使用父类的实现方法,可以自己重写这两个方法,覆盖掉即可。
[解决办法]
测试如下:


结果如下:
---------- JAVA ----------
this is m1
this is m2
this is newm

输出完成 (耗时 0 秒) - 正常终止

方法m1,m2是继承来的,只需要实现新方法newm就可以了
[解决办法]
Java code
interface a{    void m1();    void m2();}interface b{        void newm();}class aa implements a{    public void m1(){        System.out.println("this is m1");    }    public void m2(){        System.out.println("this is m2");    }}public class testa extends aa implements b{    public void newm(){        System.out.println("this is newm");    }    public static void main(String[] args){                testa a=new testa();        a.m1();        a.m2();        a.newm();    }}
[解决办法]
类A只是能访问而已
=======Class A 是继承了父类implemented的方法。不只是访问这么简单,如果只是访问,你能这么写吗?
new A().method1();这已经说明method1()方法属于a 这个实例。

[解决办法]
已经拥有了3个方法。。但是newMethond需要实现

热点排行
Bad Request.