请用通俗易懂的语言或文章链接进行解释。


当前回答

当子类扩展一个类时,它允许子类继承(重用)和重写在父类型中定义的代码。当类实现接口时,它允许在任何期望接口值的上下文中使用从该类创建的对象。

这里真正的问题是,当我们实现任何东西时,这仅仅意味着我们在使用这些方法。它们的值和返回类型没有任何变化的余地。

但是当我们扩展任何东西时,它就变成了类的扩展。您可以更改它,使用它,重用它,它不一定需要返回与在超类中相同的值。

其他回答

扩展:用于将父类的属性获取到子类中,并且可能包含已定义的方法,这些方法可以在子类中重写。

Implements:这用于通过在子类中定义接口来实现接口(仅具有函数签名而不具有函数定义的父类)。

有一个特殊的条件:“如果我希望一个新接口成为现有接口的子接口怎么办?”。在上述条件下,子接口扩展父接口。

最简单的说法是,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中是不合法的。

我注意到你的个人资料中有一些C++问题。如果您理解C++的多重继承(指从多个其他类继承特性的类)的概念,Java不允许这样做,但它确实有关键字接口,这有点像C++中的纯虚拟类。正如很多人所提到的,你扩展了一个类(而且你只能从一个类扩展),你实现了一个接口——但是你的类可以实现任意多的接口。

也就是说,这些关键字及其使用规则描述了Java中多重继承的可能性(只能有一个超级类,但可以实现多个接口)。

类只能“实现”接口。类只“扩展”类。同样,一个接口可以扩展另一个接口。

一个类只能扩展另一个类。一个类可以实现几个接口。

相反,如果您更想知道何时使用抽象类和接口,请参考以下线程:接口与抽象类(通用OO)