 
		MiseryKyo
2015-02-13 00:03
IPlayGame i = new IPlayGame(){
    public void playGame(){
    System.out.println("用匿名内部类的方式实现接口");
    }
 };以上的代码,可不可以理解为通过一个IPlayGame接口的引用指向一个没有名字但是通过重写playGame()方法成功实现了IPlayGame接口的匿名内部类中的一个对象?
new IPlayGame(){
    public void playGame(){
    System.out.println("用匿名内部类的方式实现接口");
    }
 }.playGame();这一段是不是可以理解为通过一个没有名字但是通过重写playGame()方法成功实现了IPlayGame接口的匿名内部类中的一个对象直接调用playGame()方法?
还请高人赐教。
 
				你说的是对的,匿名内部类也就是没有名字的内部类,正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写,但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口。
举例:
interface Person {
    public void eat();
}
 
public class Demo {
    public static void main(String[] args) {
        Person p = new Person() {
            public void eat() {
                System.out.println("eat something");
            }
        };
        p.eat();
    }
} 
				为什么你定义的接口中的方法eat()不是抽象的,定义在接口中的方法不应该都是抽象的吗?
Java入门第二季
531292 学习 · 6327 问题
相似问题