Java 有没有办法在抽象类中使用可选方法?

Java 有没有办法在抽象类中使用可选方法?,java,Java,我想在我的gameobject抽象类中有一个可选的抽象方法,但我不知道这是否可行,我已经搜索过了,但没有找到明确的答案。您可以将可选方法放在接口中 public abstract class SuperClass { abstract void method1(); abstract void method2(); } public interface OptionalInterface { void optionalMethod(); } // don't have the optio

我想在我的gameobject抽象类中有一个可选的抽象方法,但我不知道这是否可行,我已经搜索过了,但没有找到明确的答案。

您可以将可选方法放在接口中

public abstract class SuperClass {
 abstract void method1();
 abstract void method2();
}
public interface OptionalInterface {
 void optionalMethod();
}

// don't have the optionalMethod
public subClass1 extends SuperClass {
   void method1() {
   
   }
   void method2() {

   }
}

// Implement optionalMethod
public subClass2 extends SuperClass implements OptionalInterface  {
   void method1() {
   
   }
   void method2() {

   }
   void optionalMethod() {

   }
}

什么是“可选的抽象方法”?如果有人的抽象类的一个子类的实例没有实现该方法,并且他们试图调用该方法,那么会发生什么?不提供实现的可选方法?在抽象类中,可以提供空的默认实现,而不在具体类中重写它。如果您想禁止某些实现调用该方法,那么您可以在默认值中抛出一个异常。我建议您将opional抽象方法放在另一个接口中,然后,只有需要该方法的子类才能实现该接口。我已经搜索过了,但没有找到明确的答案。-很可能是因为它没有多大意义。这如何使该方法成为可选的(这意味着什么)?它在接口中不是可选的,因为您必须实现它?这个答案没有道理,你是对的。但有时我们必须从提问者的头脑中猜出问题所在。在他的问题中,optional背后的想法并不是关于方法本身,而是实际上,在继承自抽象超类的子类中,实现方法应该是可选的。你真的不应该猜测答案。这就是评论的目的。为了得到澄清。在某些情况下,您可能会做出一些小假设。但是OP没有暗示他们在寻找什么。我们需要评论的格式。你不能总是用英语来理解问题,有时我们需要一份带插图的草稿。但是评论的格式不好。。。。最好用干净的代码进行讨论。