jdk8前后的接口比较
在jdk8之前的interface之中可以定义变量和方法,变量必须用public、static、final进行修饰。而方法必须为public、abstract的,而且这些修饰符都是默认的。
抽象方法必须由实现类来进行实现。
jdk8前
- 接口定义方法:public、抽象方法、需要子类来实现
- 接口定义变量:public、static、final
在jdk8开始,支持使用 static 和 default 来对方法进行修饰。可以拥有方法体,不需要子类重写,子类会自动基础接口中默认的方法体。
代码演示
创建UserDao接口
package cn.unuuc.java;public interface UserDao {void insert();default void delete(){System.out.println("delete.......");}static void getUser(){System.out.println("getUser.......");}}
创建UserDaoImpl类并实现UserDao接口
package cn.unuuc.java;public class UserDaoImpl implements UserDao{@Overridepublic void insert() {System.out.println("UserDaoImpl insert.......");}}
测试
@Testpublic void test01(){UserDaoImpl userDaoImpl = new UserDaoImpl();// 调用重写的方法userDaoImpl.insert();// 调用接口中默认的方法userDaoImpl.delete();// 调用接口中静态方法UserDao.getUser();}

- 调用接口中静态方法,还是一样需要使用
接口名.方法名进行调用
