extends:拓展; 扩大范围
implement:使生效 ; 贯彻 ; 执行
重点:
- extends 用在
同类
之间。比如:classC 继承 classA,interFaceC 实现 interFaceA。 - implement 用在
非同类
之间。比如:classC 实现 interFaceA的功能。 - extends 用在类中表示继承时只能
单继承
,java不允许多重继承。比如:classC 继承 classA时,只能继承这一个class类。 - implement 在实现接口类时,可以同时实现多个接口类(变相多重继承)。比如: classC 可以同时显现 interFaceA、interFaceB的接口。
- extends 用在接口类中表示实现时,可以继承多个接口类,且不用重载接口类中的function。
举例如下:
// 错误写法,不允许多重继承
public class classC extends classA, classB {
}
// 正确写法
public class classC extends classA {
}
public interface interFaceB extends interFaceA {
void functionB();
}
extends 可以用在class中表示继承,此时只能单继承,java不允许多重继承。
extends 也可以用在interface中表示继承,此时不用重载父类的function。
// implement 用在`非同类`之间,表示实现时,下面两种方法都可以
public class classC implements interFaceA, interFaceB {
@Override
public void functionA() {
}
@Override
public void functionB() {
}
}
public class classC implements interFaceA {
@Override
public void functionA() {
}
}
implements 用在非同类中表示实现时,可以同时实现多个接口类,需要对接口类中的function进行重载。
public interface interFaceA {
void functionA();
}
public interface interFaceB {
void functionB();
}
// extends 在interface中表示继承时,可以不对functionA、functionB进行实现
public interface interFaceC extends interFaceA, interFaceB {
void funtionC();
}
// classC 在实现interFaceC接口时,需要把所有的interFaceC继承的functionA、functionB实现
public class classC implements interFaceC {
@Override
public void functionA() {
}
@Override
public void funtionC() {
}
@Override
public void functionB() {
}
}
extends 在interface中表示继承时,可以不对父类的function进行实现,而是等待其他class类继承该interface时进行重载。