public class App {
public static void main(String[] args) {
Pikachu p4=new Pikachu(){
//無需作任何事
//也可以覆蓋setLevel()方法
};
}
}
abstract class Pokemon{
int level;
abstract void setLevel(int l);
}
class Pikachu extends Pokemon{
@Override
void setLevel(int l) {
this.level=l;
}
}
App 這個 class 裡面的 p4 其實不是 Pikachu, 而是一個繼承了 Pikachu 的內部類別
簡單來說你的程式其實等於這樣
public class App {
public static void main(String[] args) {
class InnerPikachu extends Pikachu {
// override 父類別的方法
}
Pikachu p4 = new InnerPikachu();
}
}
abstract class Pokemon{
int level;
abstract void setLevel(int l);
}
class Pikachu extends Pokemon{
@Override
void setLevel(int l) {
this.level=l;
}
}