1、接口继承
java类是单继承的。classB Extends classA
java接口可以多继承。Interface3 Extends Interface0, Interface1, interface……
因为类如果可以多继承,实例化时,如果要跳用父类的方法,如果两个一样,
根本就不知道该调用那个父类的方法;
但是接口就不一样了,因为接口继承多个接口,就算多个接口有相同的方法,
但是最终实现接口的类只能实现一个方法且@Override一个方法,所以调用时就
不会有问题了
2、接口实例化-(假象的所谓内部类)实例化现象
btn.setOnClickListetener(new OnClickListener(){
@Overridepublic
void onClick(View v) { }
});
这是匿名内部类的写法。new OnClickListener(){}其实并没有真正地实例化,new了一个实现接口的匿名内部类,然后new得到匿名内部类的对象再向上转型为它实现的接口(原始类型),等价于下面的写法:
btn.setOnClickListener(new Listener());
class Listener implements View.OnClickListener{
@Override
public void onClick(View v) {
}