Java 为什么在扩展子类时需要使用确切的方法作为基类?

Java 为什么在扩展子类时需要使用确切的方法作为基类?,java,inheritance,Java,Inheritance,它与继承有关,但我仍然不知道如何将这两件事联系起来。例如,为什么公共void paint(图形窗格)不能是公共void draw(图形窗格)或公共void paint(图形窗格,int x,int y)?扩展框架的类不必重写任何方法。它们可以覆盖要扩展框架默认行为的任何方法(例如绘制自定义背景),包括上面提到的所有paint()方法 您提到的其他方法没有在Frame类中定义,因此Java不知道如何调用它们 但正如我所说,没有规则规定必须覆盖上述任何方法。但如果不重写任何方法,为什么要首先扩展框架

它与继承有关,但我仍然不知道如何将这两件事联系起来。例如,为什么公共void paint(图形窗格)不能是公共void draw(图形窗格)或公共void paint(图形窗格,int x,int y)?

扩展框架的类不必重写任何方法。它们可以覆盖要扩展框架默认行为的任何方法(例如绘制自定义背景),包括上面提到的所有paint()方法

您提到的其他方法没有在Frame类中定义,因此Java不知道如何调用它们

但正如我所说,没有规则规定必须覆盖上述任何方法。但如果不重写任何方法,为什么要首先扩展框架


另一方面,您可能应该使用JFrame而不是Frame。

因为如果您要更改方法签名,那么就不会再有继承了

如果您需要其他对象功能,继承是必不可少的,例如,
classx扩展了JPanel