一、什么是接口interface1. 核心定义- 关键字interface- 接口是「纯粹的规则/标准」只定义功能不做具体实现。- 类比接口是说明书类是真正造出来的产品。2. 接口的最大特点1. 接口多继承一个接口可以同时继承多个接口2. 类多实现一个类可以同时实现多个接口3. 接口中- 变量默认 public static final 常量不能改- JDK8开始可以有抽象方法、默认方法、静态方法- JDK9开始可以有私有方法重点接口不一定有抽象方法空接口也合法二、接口的 5 个必考规则规则1接口不强制有抽象方法Java8/9新增各种非抽象方法接口可以没有抽象方法。→ 考题「接口中必须定义抽象方法」❌ 错规则2抽象类可以实现接口抽象类实现接口时可以不重写全部方法剩下的交给它的子类实现。→ 考题「接口的实现类可以定义为抽象类」✅ 对规则3接口多继承、类多实现- 接口 extends 多个父接口- 类 implements 多个接口→ 考题「接口之间多继承、类对接口多实现」✅ 对规则4接口属性是常量抽象类属性可修改- 接口所有变量默认被 final 修饰 不可修改- 抽象类普通变量可以随意修改→ 考题「接口属性不可改抽象类属性可以改」✅ 对规则5不是所有接口都能用LambdaLambda 只支持 函数式接口只有1个抽象方法的接口有 ≥2 个抽象方法的接口不能用Lambda→ 考题「所有接口都可以用Lambda实现」❌ 错三、接口基础代码示例1. 定义接口public interface USB {// 常量默认 public static finalString NAME USB设备;// 抽象方法无实现void work();// JDK8 默认方法有实现default void show() {System.out.println(这是默认方法);}}2. 类实现接口public class Mouse implements USB{Overridepublic void work() {System.out.println(鼠标工作);}}3. 多实现重点考点// 一个类实现多个接口public class Phone implements USB, Bluetooth{}4. 接口多继承// 一个接口继承多个接口public interface A extends B,C{}四、内部类1. 什么是内部类定义在类里面的类叫内部类。2. 考试必考三种内部类1. 局部内部类方法内部类- 定义在方法里面- 作用范围只在当前方法2. 匿名内部类- 没有类名- 可以继承普通类 / 抽象类 / 实现接口考题「匿名内部类既可以基于接口也可以基于父类」✅ 对3. 成员内部类、静态内部类五、匿名内部类最简示例不用单独写一个实现类直接new接口并重写方法USB u new USB() {Overridepublic void work() {System.out.println(匿名内部类实现接口);}};六、所有填空考点终极总结直接背1. 定义接口关键字interface2. 接口与接口之间多继承3. 类与接口之间多实现4. 定义在方法里的内部类局部内部类方法内部类5. Lambda只能用在函数式接口单个抽象方法七、新手终极记忆口诀- 接口是标准多继承、多实现- 接口变量全是常量- 接口方法8有默认、9有私有- 抽象类实现接口可不全重写- Lambda 只能单抽象方法- 匿名内部类 接口、父类都能用
Java新手速成教程:接口 + 内部类
一、什么是接口interface1. 核心定义- 关键字interface- 接口是「纯粹的规则/标准」只定义功能不做具体实现。- 类比接口是说明书类是真正造出来的产品。2. 接口的最大特点1. 接口多继承一个接口可以同时继承多个接口2. 类多实现一个类可以同时实现多个接口3. 接口中- 变量默认 public static final 常量不能改- JDK8开始可以有抽象方法、默认方法、静态方法- JDK9开始可以有私有方法重点接口不一定有抽象方法空接口也合法二、接口的 5 个必考规则规则1接口不强制有抽象方法Java8/9新增各种非抽象方法接口可以没有抽象方法。→ 考题「接口中必须定义抽象方法」❌ 错规则2抽象类可以实现接口抽象类实现接口时可以不重写全部方法剩下的交给它的子类实现。→ 考题「接口的实现类可以定义为抽象类」✅ 对规则3接口多继承、类多实现- 接口 extends 多个父接口- 类 implements 多个接口→ 考题「接口之间多继承、类对接口多实现」✅ 对规则4接口属性是常量抽象类属性可修改- 接口所有变量默认被 final 修饰 不可修改- 抽象类普通变量可以随意修改→ 考题「接口属性不可改抽象类属性可以改」✅ 对规则5不是所有接口都能用LambdaLambda 只支持 函数式接口只有1个抽象方法的接口有 ≥2 个抽象方法的接口不能用Lambda→ 考题「所有接口都可以用Lambda实现」❌ 错三、接口基础代码示例1. 定义接口public interface USB {// 常量默认 public static finalString NAME USB设备;// 抽象方法无实现void work();// JDK8 默认方法有实现default void show() {System.out.println(这是默认方法);}}2. 类实现接口public class Mouse implements USB{Overridepublic void work() {System.out.println(鼠标工作);}}3. 多实现重点考点// 一个类实现多个接口public class Phone implements USB, Bluetooth{}4. 接口多继承// 一个接口继承多个接口public interface A extends B,C{}四、内部类1. 什么是内部类定义在类里面的类叫内部类。2. 考试必考三种内部类1. 局部内部类方法内部类- 定义在方法里面- 作用范围只在当前方法2. 匿名内部类- 没有类名- 可以继承普通类 / 抽象类 / 实现接口考题「匿名内部类既可以基于接口也可以基于父类」✅ 对3. 成员内部类、静态内部类五、匿名内部类最简示例不用单独写一个实现类直接new接口并重写方法USB u new USB() {Overridepublic void work() {System.out.println(匿名内部类实现接口);}};六、所有填空考点终极总结直接背1. 定义接口关键字interface2. 接口与接口之间多继承3. 类与接口之间多实现4. 定义在方法里的内部类局部内部类方法内部类5. Lambda只能用在函数式接口单个抽象方法七、新手终极记忆口诀- 接口是标准多继承、多实现- 接口变量全是常量- 接口方法8有默认、9有私有- 抽象类实现接口可不全重写- Lambda 只能单抽象方法- 匿名内部类 接口、父类都能用