请用通俗易懂的语言或文章的链接进行说明。
最佳答案
extends
用于扩展一个类。
implements
用于实现一个接口(interface)
接口(interface)和普通类的区别在于,在接口(interface)中你不能实现任何声明的方法。只有“实现”接口(interface)的类才能实现方法。接口(interface)的 C++ 等价物将是一个抽象类(不完全相同,但几乎相同)。
java 也不支持类的多重继承。这是通过使用多个接口(interface)来解决的。
public interface ExampleInterface {
public void doAction();
public String doThis(int number);
}
public class sub implements ExampleInterface {
public void doAction() {
//specify what must happen
}
public String doThis(int number) {
//specfiy what must happen
}
}
现在扩展一个类
public class SuperClass {
public int getNb() {
//specify what must happen
return 1;
}
public int getNb2() {
//specify what must happen
return 2;
}
}
public class SubClass extends SuperClass {
//you can override the implementation
@Override
public int getNb2() {
return 3;
}
}
在这种情况下
Subclass s = new SubClass();
s.getNb(); //returns 1
s.getNb2(); //returns 3
SuperClass sup = new SuperClass();
sup.getNb(); //returns 1
sup.getNb2(); //returns 2
另外,请注意,实现接口(interface)不需要 @Override
标签,因为在原始接口(interface)方法中没有任何内容要被覆盖
我建议您对面向对象编程中的动态绑定(bind)、多态性和一般继承进行更多研究
关于java - Implements vs extends : When to use? 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10839131/