interface是抽象方法和常量的集合
从本质上来说,interface是一种特殊的抽象类,他存在着抽象方法(不用在方法前加abstract)和常量(final修饰的变量),但是却不能定义变量和实现方法
public interface UserDao {final String USER_NAME="username";
public void delete(Long uid);
}
接口的特点
1)多个无关的类可以使用同一个接口
2)一个类可以实现多个接口(类似多继承,java中只有单继承)
3)接口中被定义的常量被默认是 public static final 修饰,你不写上去,他也是认为你是被这个修饰的
4)接口中的抽象方法被默认为public 也只能是public
5)你如果增加了接口的方法,那你糟了,实现了这个接口的类(implements)全都没法运行了,要全改过和接口对上才行.
接口和抽象类对比
接口不能实现方法,抽象类可以
一个类可以有无数个接口,但抽象类只能有一个 接口是implements 抽象类是继承的(extends)
抽象类增加了新方法没事,不能是abstract方法 继承了抽象类的类美滋滋的就用起来了, 接口增加了新方法,你要去implements的类修改,增加.
抽象类可以有变量,常量 接口只能有常量(就算你写的是变量,该变量前缀默认为 public static final)