一、接口的特点
1、接口不可以实例化,创建对象时利用多态的方式创建。
Animal animal = new Dog();
//Animal是接口,Dog必须是实现了接口Animal的类。
2、接口的子类可以是抽象类,也可以是具体类(必须实现该接口,重写该接口中的所有方法)。
二、接口成员的特点
成员变量:接口的成员变量只能是常量,而且是静态的,默认修饰符为 public static final,并且只能是被public static final 修饰;
构造方法:接口没有构造方法;
成员方法:只能是抽象方法,默认修饰符为public abstract,并且只能被public abstract修饰。
注意:Java没有多继承,一个类只能继承一个父类,可以实现多个接口,但是,一个接口可以继承多个接口。
三、接口和抽象类的区别
1、接口中所有方法都是public abstract类型的,抽象类中的成员方法可以是抽象的,也可以是非抽象的,访问权限可以不限于public;
2、接口中成员变量必须是常量,被public static final 修饰,抽象类中成员变量可以是常量,也可以是变量;
3、接口没有构造方法,抽象类有构造方法;
4、抽象类 被继承体现的是:”is a”的关系,抽象类中定义的是该继承体系的共性功能,
接口 被实现体现的是:”like a”的关系,接口中定义的是该继承体系的扩展功能。