public class PolyMorphic {
public static void main(String[] args) {
PolyMorphic.printNumber(new IntNumber(1));
PolyMorphic.printNumber(new DoubleNumber(4.54));
}
public static void printNumber(MyNumber N) {
N.print(N);
System.out.println();
}
public abstract class MyNumber{
abstract void print(MyNumber N);
}
public class IntNumber extends MyNumber{
int x;
IntNumber(){
x = 3;
}
IntNumber(int x){
this.x = x;
}
void print(MyNumber N) {
double temp = (double)x;
System.out.printf("%.2f",temp);
}
}
public class DoubleNumber extends MyNumber{
double x;
DoubleNumber(){
x = 3.23;
}
DoubleNumber(double x){
this.x = x;
}
void print(MyNumber N) {
double temp = x;
System.out.printf("%.2f",temp);
}
}
}
所以我想創建一個名爲printNumber
的PolyMorphic
類,這是polymorphic
並可打印(控制檯)的方法要麼保留兩位小數到intNumber右邊或右邊有三位小數的DoubleNumber
。如PolyMorphic.printNumber(new IntNumber(1));
態類/多態性/嵌套類-Getting錯誤信息
我的問題是這樣的:
上的線條:
PolyMorphic.printNumber(new IntNUmber(1));
PolyMorphic.printNumber(new DoubleNumber(4.54));
這是錯誤消息:
「類型多態的沒有外圍實例是可訪問的必備 使用一個封閉的PolyMorphic實例 (egxnew A()其中x是多態的一個實例)來限定分配。「
它給了我這兩個實例,我很困惑,爲什麼它不工作。如果有人能指出我朝着正確的方向,我會非常感激。
謝謝。
可能重複的[Java - 沒有可以訪問Foo類型的封閉實例](http:// stackoverflow。com/questions/9560600/java-no-enclosing-instance-of-type-foo-is-accessible) – fabian