我很困惑,如果
Abstract Class A{method();method2();}
其他Class B
内心Class C
Class B{Abstract Class C{method(){//body}}}
现在问题是如何扩展C类B / C抽象类必须扩展其他 这是Unused类。
答案 0 :(得分:6)
首先,让它变得更简单 - 这与Android无直接关系,您根本不需要A
课程。这就是你想要的:
class Outer {
abstract class Inner {
}
}
class Child extends Outer.Inner {
}
这不会编译,因为当您创建Child
的实例时,您需要向Outer
构造函数提供Inner
的实例:
Test.java:6: error: an enclosing instance that contains Outer.Inner is required
class Child extends Outer.Inner {
^
1 error
有两种方法可以解决这个问题:
如果您不需要从Outer
引用Inner
的隐式实例,则可以使Inner
成为静态嵌套类:
static abstract class Inner {
}
您可以更改Child
以接受对Outer
实例的引用,并使用 来调用Inner
构造函数,该构造函数使用有点令人惊讶的语法,但有效:
Child(Outer outer) {
// Calls Inner constructor, providing
// outer as the containing instance
outer.super();
}
请注意,这些是替代方案 - 您应该根据内部类是否真正需要作为内部类来选择您想要的那个。
答案 1 :(得分:1)
你只是扩展它
pm2 start app.js -x --prod
或者稍微复杂一点而不扩展外部类
class B{abstract class C{abstract void method();}}
class D extends B{
class E extends C{
void method(){
System.out.println("Hello World");
}
}
}