定义了一个接口
public interface Dance {
void dance();
}
public class DanceTest {
public static void main(String[] args) {
//通过匿名内部类创建对象
Dance dance = new Dance() {
@Override
public void dance() {
System.out.println("跳舞!");
}
};
}
}
通过匿名内部类创建对象,其实是创建了一个Dance接口的实现类的对象。
就是这里实际上是定义了一个匿名类,而这个匿名类实现了Dance接口,重写了dance( )方法,然后通过new实例化这个匿名类。
总而言之,接口不能创建对象,这里 Dance dance = new Dance(){ 省略 ...} ,是接口的引用指向其实现类的对象