Java接口的问题
我在使用另一个类的接口时遇到问题 我有一个动物课,一个宠物课和一个小介面课。Pet类扩展了Animal类,PetInterface类扩展了JFrame 我的问题是我需要在PetInterface类中使用来自Pet类的方法,例如: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 { 它告诉我“类
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。具体来说,接口没有实现,因此,不能依赖于另一个类的方法。