概念
接口是比抽象类抽象的存在,体现了代码的扩展性——事物的额外功能;
如果一些具体事物能够将额外功能实现,那么这些事物就具备这些功能;
接口体现的是一种like a的关系,区别于抽象类的is a;
定义格式
Interface + 接口名 接口名尽量见名知意;
接口的子类叫做接口的子实现类,通过多态实例化,
接口名 对象名=new 子实现类名();
括号内重写接口方法,充实具体功能;
继承接口的符号:类名+ implements +接口名
特点
接口里的方法只能是抽象方法,同时具有抽象类的一些特征;
不能实例化不能被new;
接口的成员访问
成员变量,只能是常量,存在隐藏的默认修饰符public static final;
构造方法,接口没有构造方法!
成员方法,只能是抽象方法,存在隐藏的默认修饰符public abstract;
开发中定义了一个接口,子实现类都在接口名的后面加上Impl;
抽象和接口的区别
成员之间的区别
- 成员变量
抽象类可以是常量可以是变量;接口只能是常量; - 构造方法
抽象类有构造方法,有参或者无参,可针对父类进行分层初始化;接口没有构造方法; - 成员方法
抽象类既可以是抽象方法,也可以是非抽象方法;接口只能是抽象方法,存在默认修饰符public abstract
关系之间的区别
类与类之间继承的关系:
抽象类extends仅支持单继承,但是可以多层继承
类与接口
接口可以多实现多个接口;
接口与接口
接口之间可以单继承也可以多继承
interface 接口名1
extends父接口1,父接口2,...{}
设计理念的区别
抽象类是体现了事物的概念集合
接口是体现事物的额外功能;