我找到了javatpoint的这段代码。但是当我尝试编译它时,它给了我一个错误。
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
No enclosing instance of type Hierarchical is accessible. Must qualify the allocation with an enclosing instance of type Hierarchical (e.g. x.new A() where x is an instance of Hierarchical).
No enclosing instance of type Hierarchical is accessible. Must qualify the allocation with an enclosing instance of type Hierarchical (e.g. x.new A() where x is an instance of Hierarchical).
at Inheritance.Hierarchical.main(Hierarchical.java:28)
为什么我会收到此错误? Eclipse 告诉我将类设为静态,但我不明白为什么?
package Inheritance;
public class Hierarchical {
static void bayern() {
System.out.println("bayern");
}
class Hierarchical2 extends Hierarchical {
static void barcelona() {
System.out.println("barcelona");
}
}
class Hierarchical3 extends Hierarchical {
static void Madrid() {
System.out.println("madrid");
}
}
public static void main(String[] args) {
Hierarchical2 h2 = new Hierarchical2();
Hierarchical3 h3 = new Hierarchical3();
h2.barcelona();
h2.bayern();
h3.Madrid();
h3.bayern();
}
}
最佳答案
由于 Hierarchical2
和 Hierarchical3
不是静态的,因此您需要一个封闭类 (Hierarchical) 的实例来实例化这些类。
具体操作方法如下:
Hierarchical hierarchical = new Hierarchical();
Hierarchical2 hierarchical2 = hierarchical .new Hierarchical2();
将类 Hierarchical2
和 Hierarchical3
声明为静态,您可以像您所做的那样实例化。
希望对你有帮助。
关于java - 分层继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42832209/