定义:它与类的定义相似,但是使用interface关键字修饰。他的源文件后缀是.java编译后的文件也是.class。但是它不是类,是另一种引用数据类型
接口的定义格式访问修饰符interface接口名称(){jdk7常量:访问修饰符staticfinal常量名=值;抽象方法;publicabstract(可以省略)返回值类型方法名();jdk8静态方法访问修饰符static返回值类型方法名(){}//静态方法一般是和类.class文件相关。只能使用接口名来调用,不可以使用实现类的类名或者实现类的对象类调用默认方法publicdefault返回值类型方法名(){}jdk9私有方法private修饰的方法//私有方法只有默认方法可以使用//私有静态方法默认方法和静态方法都可以调用}接口需要非抽象子类来实现,实现使用关键字implements关键字,需要实现接口的抽象方法(必须全部实现)和默认方法(可选),实现格式访问修饰符class类名implements接口名{抽象方法;默认方法;}接口的多实现:一个类可以实现多个接口,并且,一个类可以继承一个父类同时还可以实现多个接口接口中必须重写所有的抽象方法,如果有重名的抽象方法只需要重写一次默认方法可以继承也可以重写,要是出现重名,必须重写一次静态方法使用类名调用,就算有重名也不用重写优先级问题一个子类继承一个父类同时又继承多个接口,如果成员方法和抽象方法重名,这类会选择执行父类的成员方法子类及重写默认方法,default可以保留接口中,无法定义成员变量,但是可以定义常量,因为值不变,默认使用publicstaticfinal修饰的接口中,没有构造方法,不能创建对象接口当中,没有静态代码块
接口的好处:设定了规则降低耦合度扩展原有类的功能
接口与抽象类的区别:相同点:都包含抽象方法,其子类必须都得重写这些抽象方法不能直接创建对象,可以创建非抽象子类对象都位于继承的顶端,用于被其它类实现或者继承区别:类与类之间是单继承,接口可以是多继承,类多实现接口抽象类可以有普通成员,接口没有接口可以有定义常量,抽象类可以定义普通变量和常量抽象类有构造方法,接口没有构造方法
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点