Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.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接口的问题_Java_Interface_Compiler Errors - Fatal编程技术网

Java接口的问题

Java接口的问题,java,interface,compiler-errors,Java,Interface,Compiler Errors,我在使用另一个类的接口时遇到问题 我有一个动物课,一个宠物课和一个小介面课。Pet类扩展了Animal类,PetInterface类扩展了JFrame 我的问题是我需要在PetInterface类中使用来自Pet类的方法,例如: JLabel happinessLabel = new JLabel(gethappiness()); 我不知道如何让它工作。每当我使用 public class Pet extends Animal implements PetInterface { 它告诉我“类

我在使用另一个类的接口时遇到问题

我有一个动物课,一个宠物课和一个小介面课。Pet类扩展了Animal类,PetInterface类扩展了JFrame

我的问题是我需要在PetInterface类中使用来自Pet类的方法,例如:

JLabel happinessLabel = new JLabel(gethappiness());
我不知道如何让它工作。每当我使用

public class Pet extends Animal implements PetInterface {

它告诉我“类型PetInterface不能是Pet的超级接口;超级接口必须是接口”。

忽略此处潜在的设计陷阱,看起来您已将PetInterface声明为类而不是公共接口。

除非child也是一个接口,否则您不能对接口使用
扩展

同样,不能对类使用
实现

class PetInterface extends JFrame{}
class Pet extends Animal implements PetInterface {} //PetInterface is not an interface
您为
PetInterface
选择了一个相互矛盾的名称,而实际上它是一个
。有时会造成混乱


要记住的要点:

  • 一个接口可以扩展多个接口
  • 一个类可以实现多个接口
  • 一个类可以扩展单个类
一些样品来说明这一点

interface InterfaceA{}
interface InterfaceB extends InterfaceA{} // valid 
// extends an interface where child is also an interface

class InterfaceA{}
class InterfaceB implements InterfaceA {} // invalid 
// implements a class

interface InterfaceA{}
class InterfaceB extends InterfaceA {} // invalid 
// extends an interface where child is a class

interface InterfaceA{}
interface InterfaceC{}
interface InterfaceB extends InterfaceA,InterfaceC{} // valid
// extends multiple interfaces

在类中使用“implements”关键字时,PetInterface是类。java抛出这样的异常

java中的接口并不意味着它是用户接口。请查看此处接口的定义:

PetInterface
显然不是接口,而是类。“我的问题是,我需要在PetInterface类中使用Pet类中的方法”,这总共是0。具体来说,接口没有实现,因此,不能依赖于另一个类的方法。