扩展多个类

jij*_*ijo 6 java inheritance

我知道Java不支持多继承,因为不允许扩展多个类.我只是想知道我的问题是否有解决方法.

我有一个名为CustomAction需要扩展两个抽象类的类,BaseAction并且QuoteBaseAction.我不能改变任何这些抽象类,并将其他类扩展.

这些抽象类具有我需要使用的方法实现.我也无法创建接口,因为接口只能扩展另一个接口.

有任何想法吗?

Sud*_*kar 5

干得好 ...

public class CustomAction extends BaseAction {
  class Inner extends QuoteBaseAction {

  }
}
Run Code Online (Sandbox Code Playgroud)

  • 这不是继承:您不能用 CustomAction 替换 QuoteBaseAction。如果唯一的目标是重用现有代码,它只会起作用。但在这种情况下,不需要从 BaseAction 扩展,它可以通过组合机制重用。 (2认同)

Per*_*ror 5

组合是要走的路.把你的一个抽象类作为你班级的一部分.

public abstract class Abs1 {
 //
 } 
public abstract class Abs2 {
 //
 } 
public  class Main extends Abs1 {
 Abs2 abs2 = ...
//impl
 } 
Run Code Online (Sandbox Code Playgroud)