我正在嘗試挖掘匿名類,並且剛剛出現了一個問題我不想引用太多細節並直接提出我的問題:如何調用方法sizzle()
在以下匿名類:調用匿名類的子類方法
public class Popcorn {
public void pop() {
System.out.println("popcorn");
}
}
class Food {
Popcorn p = new Popcorn() {
public void sizzle() {
System.out.println("anonymous sizzling popcorn");
}
public void pop() {
System.out.println("anonymous popcorn");
}
};
public void popIt() {
p.pop(); // OK, Popcorn has a pop() method
p.sizzle(); // Not Legal! Popcorn does not have sizzle()
}
}
已知並且在一個超類的一個refernce不能調用子類的方法,而沒有向下轉換(即使它是指在給定的子類的一個對象)多態性的規則確定。但是,在上述情況下,調用sizzle()
方法的「關鍵」是什麼?
唯一的方法是在爆米花類中實施嘶嘶聲。 – PermGenError
**使用一個命名的類** – millimoose