Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么';t AbstractAction实现actionPerformed()?_Java_Awt_Actionlistener_Abstract Action - Fatal编程技术网

Java 为什么';t AbstractAction实现actionPerformed()?

Java 为什么';t AbstractAction实现actionPerformed()?,java,awt,actionlistener,abstract-action,Java,Awt,Actionlistener,Abstract Action,类AbstractAction实现接口Action,但在Action中,有一个方法actionPerformed(ActionEvent e),它继承自接口ActionListener 我知道实现接口的类必须提供该接口中方法的所有实现 但是我发现在AbstractAction中没有实现actionPerformed(ActionEvent e),为什么 我知道实现接口的类必须提供该接口中方法的所有实现 如果是抽象类,则不正确。只有具体的类才应该为它扩展的超类(将是抽象的)中的所有抽象方法以及它实

AbstractAction
实现接口
Action
,但在
Action
中,有一个方法
actionPerformed(ActionEvent e)
,它继承自接口
ActionListener

我知道实现接口的类必须提供该接口中方法的所有实现
但是我发现在
AbstractAction
中没有实现
actionPerformed(ActionEvent e)
,为什么

我知道实现接口的类必须提供该接口中方法的所有实现

如果是抽象类,则不正确。只有具体的类才应该为它扩展的超类(将是抽象的)中的所有抽象方法以及它实现的接口中的所有方法提供实现

但是我发现AbstractAction中没有actionPerformed(ActionEvent e)的实现,为什么

他们想让它在该类中保持抽象,以确保扩展该类的任何具体内容都能为该方法提供实现

此外,它将执行什么默认操作(可能为空或无)

我知道实现接口的类必须提供该接口中方法的所有实现

如果是抽象类,则不正确。只有具体的类才应该为它扩展的超类(将是抽象的)中的所有抽象方法以及它实现的接口中的所有方法提供实现

但是我发现AbstractAction中没有actionPerformed(ActionEvent e)的实现,为什么

他们想让它在该类中保持抽象,以确保扩展该类的任何具体内容都能为该方法提供实现


此外,它将执行什么默认操作(可能是空的或什么都没有)?

AbstractAction是一个抽象类,因此它不必实现接口上的所有方法。抽象类不能被实例化,因此如果不创建它的子类,就不能使用它们。只有具体类(即非抽象类)必须提供接口所有方法的实现。如果您将AbstractAction子类化,那么您的子类必须实现actionPerformed(),否则它也必须是抽象的


这些就是规则,但是AbstractAction实现actionPerformed()没有意义,因为它不可能提供有用的实现。每个子类都必须重写它的定义,这使它成为标记为抽象的好候选

AbstractAction是一个抽象类,因此它不必实现接口上的所有方法。抽象类不能被实例化,因此如果不创建它的子类,就不能使用它们。只有具体类(即非抽象类)必须提供接口所有方法的实现。如果您将AbstractAction子类化,那么您的子类必须实现actionPerformed(),否则它也必须是抽象的


这些就是规则,但是AbstractAction实现actionPerformed()没有意义,因为它不可能提供有用的实现。每个子类都必须重写它的定义,这使它成为标记为抽象的好候选

允许
抽象类不完整。抽象类不需要实现接口或父抽象类指定的任何或所有方法。此外,抽象类可以声明任何子类都必须实现的新抽象方法


使类抽象化所付出的代价是它不能直接实例化。也就是说,必须扩展抽象类才能使用。

允许
抽象类不完整。抽象类不需要实现接口或父抽象类指定的任何或所有方法。此外,抽象类可以声明任何子类都必须实现的新抽象方法

使类抽象化所付出的代价是它不能直接实例化。也就是说,必须扩展抽象类才能使用