比如:定义一个会接口 会游泳 swimable,实现类Fish。
第一种:
Swimable a = new Swimable() {
@Override
public void swim() {
System.out.println("会游泳)
}
};
第二种:Swimable a = new Fish() ;
第一种是直接new一个接口,第二个是用一个接口类型变量来接收一对象,这两者的原理都是什么呢?可以直接new接口?还有这两者有什么区别啊?
第一种是声明并创建了一个匿名内部类及其对象,该类实现了 swimable接口,第二种是面向接口的编程方式,方便程序以后的修改与扩展。没有接口对象一说,只有实现接口的类及其实例对象。