@一贤不穿小鞋
1.接口
- 是一种特殊抽象类.
- 解决多继承的问题.更好地使用多肽.
- 定义interface,实现implements,多个接口之间用逗号隔开.
1.1:接口表示的是一种扩展功能,也表示一种约定,规范.
- 接口也是一种引用数据类型.
- 实现类必须实现接口的所有方法.
1.2:接口关键字
- 声明接口的关键字:interface
- 实现接口的关键字:implements
1.3:接口特点
- 接口中方法默认全是抽象方法(在jdk1.8后,接口中还可以有静态方法和扩展方法),接口中变量全是静态常量.
- 接口中方法,系统会默认加public abstract修饰,接口中变量系统会默认加public static final修饰.
- 接口中抽象方法必须被子类重写,除非子类也是抽象的或接口.
- 接口不能实例化(不能创建对象)且接口中没有构造方法.
- 类与类之间是继承的关系,类与接口之间是实现的关系,接口与接口之间是继承的关系.一个类最多只能直接继承一个类,一个类可以实现多个接口,一个接口可以继承多个接口.
- 一个类只能直接继承一个类,但是一个类可以实现多个接口,所以从某种程序上来说,接口弥补了Java单继承的缺陷.
1.4:接口作用
- 提高程序的可扩展性.
eg:/**
* 抓老鼠的接口
* @author sx
* @version 1.0 2020年10月20日
*/
public interface CatchMouse {
void catchMouse();
}
/**
* 爬树的接口
* @author sx
* @version 1.0 2020年10月20日
*/
public interface ClimbTree extends CatchMouse,Swimming{
/**
* 接口中静态常量
*/
public static final int num=1;
/**
* 接口中抽象方法
*/
public abstract void climbTree();
}
/**
* 猫类,继承宠物类
* @author sx
* @version 1.0 2020年10月20日
*/
public class Cat extends Pet implements ClimbTree,CatchMouse{
/**
* 重写