一、接口 接口的含义:定义标准和功能的集合。 接口的好处: 1.提高代码的复用性,从而提高开发效率; 2.提高代码的扩展性; 3.接口可以避免继承的局限性(继承父类只能单继承,实现父接口可以多实现); 4.接口也是学习多态的前提条件之一; 接口的格式: 1.public interface 接口名 { 自定义常量 抽象方法 默认方法(JDK8.0) 静态方法(JDK8.0) 私有方法(JDK9.0) 内部接口(暂时不超) } 2.public class(父类)类名[extends 父类类名] implements 接口名1,接口名2,......,接口名n{ } 接口的使用具体步骤: 1.定义接口; 2.定义接口的实现类,重写接口中的抽象方法; 3.在测试类中创建实现类对象,并调用方法完成需求; 类和接口关系: 1.实现关系,类似于继承关系(90%相似); 2.对于接口来说,实现接口的类称之为”实现类”;
二、接口的成员
接口的成员有: 1.自定义常量; 2.抽象方法; 3.默认方法(JDK8.0); 4.静态方法(JDK8.0); 5.私有方法(JDK9.0); 6.内部接口);
接口的成员1:自定义常量 自定义常量格式: [public] [static] [final] 数据类型 常量名 = 初始化值; []中的修饰符是固定不变的,如果不写,JVM自动隐式补齐 自定义常量访问方式: 接口名.常量名 接口的成员2:抽象方法 抽象方法的格式: [public] [abstract] 返回值类型 方法名(); []中的修饰符是顾定不变的,如果不写,JVM自动隐式补齐
接口的成员3:默认方法(JDK8.0) 格式: [public] default 返回值类型 方法名(){} 默认方法的注意事项: 1.当子类同时继承父类和实现父接口,父类的实例方法和父接口中的默认方法发生同名的时候,通过子类对象调用执行的是父类的实例方法; 2.当子类不继承父类,但同时实现多个父接口,多个父接口中存在同名的默认方法,JVM做编译报错处理,要求我们必须重写这个同名的默认方法;
接口的成员4:静态方法(JDK8.0) 格式: [public] static 返回值类型 方法名(){} 调用方式: 接口名.静态方法名(实参); 注意事项: 在继承关系中,可以通过子类类名调用静态方法; 在实现关系中,不可以通过实现类类名进行调用静态方法;
接口的成员5:私有方法(JDk9.0)(了解) 格式: 抽取的是默认方法 private 返回值类型 方法名 () { } 抽取的是静态方法 private static 返回值类型 方法名 () { }
接口的补充: 1.类与类之间的关系:单继承; 2.类与接口之间的关系:多实现; 3.接口与接口之间的关:多继承;