接口顾名思义是用来拓展功能的ide
接口的注意点:函数
1.接口是一个特殊的类spa
2.接口成员变量默认修饰符为 public static final code
3.在jdk1.7以前,接口中只能够有抽象方法,在jdk1.8及以后,接口中能够有非抽象方法,用static和default修饰,用static修饰的方法只能够经过接口名调用,对象
而default修饰的方法,只能经过继承此接口的实现类调用blog
4.接口没有构造函数,不能建立对象(抽象类有构造函数,子类建立的对象时候默认调用父类构造函数,但抽象类自己不能建立对象)继承
5.接口被非抽象类继承时,非抽象类必须重写接口中全部抽象方法,接口被抽象类继承时,抽象类能够重写其中的抽象方法,也能够不重写接口
6.一个类能够实现多个接口虚拟机
7.接口中的常量能够经过实现类访问,也能够经过接口名访问class
8.接口中的抽象方法只能经过实现类调用
9.接口中的方法若是没有加上权限或者abstract修饰符 ,虚拟机会默认加上public abstract 修饰符 ,而且只支持public 和 default权限修饰符 ,并且default在此处不等同于在其余地方使用default权限修饰符 ,在此处是方便经过继承此接口的实现类去调用
public class Demo4 { /** * @param args */ public static void main(String[] args) { // LoginDao ld = new LoginDao(); User u = new User(); System.out.println(LoginDao.str);// 接口中的常量能够经过接口名访问 System.out.println(u.a); // 接口中的常量能够经过实现类访问 u.update(); // 接口中的抽象方法只能经过实现类访问 u.del(); // 接口中default修饰的方法只能经过实现类访问 LoginDao.add(); // 接口中static修饰的方法只能经过接口名访问 } } interface LoginDao{ int a =10; String str = "aaa"; void update(); static void add(){ System.out.println("add...."); } default void del(){ System.out.println("add...."); } } interface queryDao{ void query(); } interface Zi extends queryDao,LoginDao{ } abstract class Account implements LoginDao,queryDao{ @Override public void update() { // TODO Auto-generated method stub } @Override public void del() { } } class User implements LoginDao,queryDao{ @Override public void update() { System.out.println("sadfasf"); } @Override public void query() { // TODO Auto-generated method stub } @Override public void del() { } }