package ErrorAndApi;
public interface InterfaceExample {
}
interface InterfaceExample2 extends InterfaceExample{
}
和类与类的继承一样,接口与接口之间的继承也可以使用@Override进行验证,仍然无需实现接口中的方法。
比如
package ErrorAndApi;
public interface InterfaceExample {
void InterFaceExampleFunction();
}
interface InterfaceExample2 extends InterfaceExample{
@Override
void InterFaceExampleFunction();
}
仍然不会报错
接口内的多个抽象方法也可以进行重写,比如
比如
public interface InterfaceExample {
void InterFaceExampleFunction();
void InterFaceExampleFunction(String name);
String InterFaceExampleFunction(String name,int age);
}
并不会报错
接口2继承接口1
那么一个类也可以同时实现接口1,和接口2吗
比如
package ErrorAndApi;
public interface InterfaceExample {
void InterFaceExampleFunction();
void InterFaceExampleFunction(String name);
String InterFaceExampleFunction(String name,int age);
}
interface InterfaceExample2 extends InterfaceExample{
void InterFaceExampleFunction();
void InterFaceExampleFunction(String name);
}
package ErrorAndApi;
public class InterfaceExampleImpl implements InterfaceExample,InterfaceExample2{
@Override
public void InterFaceExampleFunction() {
}
@Override
public void InterFaceExampleFunction(String name) {
}
@Override
public String InterFaceExampleFunction(String name, int age) {
return null;
}
}
一个类实现类 一个接口,这个接口继承另外一个接口,
这个内要实现着两个接口的所有接口,无论是否重写的接口,否则会报错
package ErrorAndApi;
public interface InterfaceExample {
void InterFaceExampleFunction();
void InterFaceExampleFunction(String name);
String InterFaceExampleFunction(String name,int age);
String InterFaceExampleFunction(String name,int age,String s2);
}
interface InterfaceExample2 extends InterfaceExample{
void InterFaceExampleFunction();
void InterFaceExampleFunction(String name);
void InterFaceExampleFunction2(String name);
}
必须要实现所有方法
重载的调用
调用
输出
上面代码定义了两个接口,InterfaceExample和InterfaceExample2。InterfaceExample定义了四个方法,分别是InterFaceExampleFunction()、InterFaceExampleFunction(String name)、InterFaceExampleFunction(String name, int age)和InterFaceExampleFunction(String name, int age, String s2)。InterfaceExample2继承自InterfaceExample,并新增了一个方法InterFaceExampleFunction2(String name)。
需要注意的是,虽然InterfaceExample2继承自InterfaceExample,但是在InterfaceExample2中重新定义的方法InterFaceExampleFunction()和InterFaceExampleFunction(String name)并不会覆盖InterfaceExample中的同名方法。因为接口中的方法默认是抽象的,子接口只是继承了父接口的方法签名,并没有提供具体的实现。所以在实现InterfaceExample2接口时,仍然需要实现InterfaceExample中的方法。