一、接口
关键词: interface,implements;
创建一个接口:public interface Lock{
public abstract void lockDoor(); } //接口里的方法默认的抽象方法
接口的特性:(1)接口不能被实例化
(2)实现类必须实现接口的所有方法(除了这个实现类也是抽象类)
(3)实现类可以实现多个接口;(在实现类类名后+ implements 接口类名,接口类名2)
注:实现多接口可以解决Java里只能单根继承的缺陷,实现多接口即相当于多继承;
(4)接口中的变量都是静态常量(public static final)
接口的使用:public class SuperDoor implements Lock{
public void lockDoor(){
System.out.println("锁门") } } //实现类必须实现接口的所有方法
接口中的方法:默认都是public abstract的; 且除了成员变量和方法,不能包含其他;
接口中的特例: 接口中没有构造方法,不能被实例化。
二、抽象类与接口的区别
抽象类与子类符合:is a 的关系(如:防盗门是一个门)
接口与子类符合: has a的关系(如:防盗门有一个锁,防盗的能力)
相同点:(1)接口与抽象类是系统抽象层
(2)接口与抽象类都不能被实例化
(3)接口与抽象类的抽象方法都必须在实现类中实现
不相同点 :(1)实现类只能继承一个直接父类 ,但可以实现多个接口
(2)接口中的方法都是抽象方法。抽象类中可以含有普通方法与抽象方法
(3)接口中没有构造方法;