请用通俗易懂的语言或文章链接进行解释。
当前回答
这两个关键字与继承直接关联,这是OOP的核心概念。当我们将某个类继承到另一个类时,我们可以使用extends,但当我们要将某些接口继承到我们的类时,不能使用extends时,我们应该使用implements,并且我们可以使用扩展关键字从另一个接口继承接口。
其他回答
extends用于从基类继承时(即扩展其功能)。
implements用于实现接口时。
这里是一个很好的开始:接口和继承。
延伸
类只扩展一个类接口扩展了一个或多个接口
工具
类实现一个或多个接口接口“不能”实现任何内容
抽象类也像类一样,具有扩展和实现
extends用于扩展类。
implements用于实现接口
接口和常规类之间的区别在于,在接口中不能实现任何声明的方法。只有“实现”接口的类才能实现方法。C++等价的接口将是一个抽象类(不完全相同,但几乎相同)。
此外,java不支持类的多重继承。这通过使用多个接口来解决。
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
此外,请注意,实现接口不需要@Override标记,因为原始接口方法中没有任何内容需要重写
我建议您对面向对象编程中的动态绑定、多态性和一般继承进行更多研究
最简单的说法是,extends用于从类继承,implements用于在类中应用接口
延伸:
public class Bicycle {
//properties and methods
}
public class MountainBike extends Bicycle {
//new properties and methods
}
机具:
public interface Relatable {
//stuff you want to put
}
public class RectanglePlus implements Relatable {
//your class code
}
如果您仍然感到困惑,请阅读以下内容:https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.htmlhttps://docs.oracle.com/javase/tutorial/java/IandI/usinginterface.html
A延伸B:A和B都是类或都是接口A机具BA是类,B是接口剩下的A是接口而B是类的情况在Java中是不合法的。
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- 在Jar文件中运行类
- 带参数的可运行?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 在Java流是peek真的只是调试?
- Recyclerview不调用onCreateViewHolder
- 将JSON字符串转换为HashMap