接口中的方法全都是抽象方法,用来指定一些规则,让子类去重写。接口的作用主要体现在一下两点
1.指定规则
2.利用这些规则给类做功能扩展
接口使用interface关键字来定义,使用implements来实现。
1 //定义接口 2 public interface Inter{ 3 //接口中的抽象方法 4 public abstract void method(); 5 } 6 7 //实现接口 8 public class InterImpl implements Inter{ 9 //重写抽象方法 10 @Override 11 public void method(){ 12 System.out.println("重写实现类方法"); 13 } 14 } 15 16 public class Demo1{ 17 public static void main(String[] args){ 18 //创建实现类对象 19 InterImpl impl = new InterImpl(); 20 //调用方法 21 impl.method(); 22 } 23 }
1.接口中的成员变量,默认被 public static final 修饰
2.接口中的方法,默认被 public abstract 修饰
3.接口中不能写构造方法
JDK7以后对接口做了一些更新
JDK7: 接口中的方法全都是抽象方法,子类【必须重写】
JDK8: 允许在接口中写默认方法(被 public default 修饰的方法),【可选重写】
如果多个接口中有相同的默认方法,子类必须重写
允许在接口中写静态方法(被 public static 修饰),使用接口名调
JDK9: 允许在接口中写私有方法 (被 private 修饰),只能在本接口中使用
1.类与类的关系:只能单继承
2.类与接口的关系:一个类在继承父类的同时,可以实现多个接口
3.接口与接口关系:一个接口可以继承多个接口
主要是设计思想上的区别:
父类(抽象类): 体现的设计思想是【共性抽取】
接口: 体现的设计思想是【功能扩展】