接口继承问题
我是初学者,问错了请大家多多指教~刚才问的不对重问~
如果我有一个类A,A实现了一个接口IA,
而A的派生类B要实现接口IB,IB继承于IA。
这时实现B类时只实现IB中新的方法就可以了么?
就是说通过B类的IB接口可以直接使用以前在A中实现的方法么?
------解决方案--------------------B本来就只需要实现IB的方法即可
B既然继承A,而A是实现了IA的方法的,也就是B天生就实现了IA的方法,那么就只剩下IB的方法靠B自己去实现
------解决方案--------------------类之间 用 “继承” extend
类和接口只能用 “实现” implements
希望各位大虾能重视基本概念
------解决方案--------------------给你个代码看看:
//IA.java
public interface IA {
public void A1();
public void A2();
}
//A.java
public class A implements IA {
public void A1() {
System.out.print( "A1 ");
}
public void A2() {
System.out.print( "A2 ");
}
}
//IB.java
public interface IB extends IA {
public void B1();
public void B2();
}
//B.java
public class B extends A implements IB {
public void B1() {
System.out.print( "B1 ");
}
public void B2() {
System.out.print( "B2 ");
}
}
//T.java
public class T {
public static void main(String[] args) {
IB b=new B();
//IB c=new A(); 不正确
IA a=new B();//向上转型
a.A1();
//a.B1(); 不正确,因为a虽然是B的实例,但它的类型是IA,IA无此接口。
b.A1();//正确
b.B1();
}
}
------解决方案--------------------利用继承,可方便地为一个接口添加新的方法声明,也可以将几个接口合并成一个新接口。在这种情
况下,最终得到的都是一个新接口。
通常,我们只能对单独一个类应用extends(扩展)关键字。但由于接口可能由多个其他接口构成,所以在构建一个新接口时,extends 可能引用多个基础接口。
--------------------
似乎回答过这个问题...
------解决方案--------------------这时实现B类时只实现IB中新的方法就可以了么?
==========================================
只要B类的直接超类A中没有abstract的方法,
B类就可以直接实现IB接口中的新方法,IA接口中的方法想实现就实现
就是说通过B类的IB接口可以直接使用以前在A中实现的方法么?
===================================================
可以
另外学java先学core java 2 v1,
然后再学 < <深入Java虚拟机(原书第2版)> >
学完好,think in java就不用看了。
写程序多看看API文档
------解决方案--------------------B只要implements IB 就可以了
A已经实现了IA 而B又是继承A的