接口中的成员变量默认都是public、static、final类型的,必须被显式初始化。并且接口中只能包含public、static、final类型的成员变量。
publicinterfaceA{intv1;//编译出错,v1变量被看作静态常量,必须被显式初始化protectedintv2=0;//编译出错,v2变量必须是public类型intv3=3;//合法,v3变量默认为public、static、final类型,此处public可不用写}
允许在接口中定义抽象方法,默认方法和静态方法。默认方法用default关键字来声明,拥有默认的实现。接口中的方法默认是public类型的,并且必须是public类型的。接口之间也可以继承一个类只能继承一个直接的父类,但能实现多个接口。
比较抽象类与接口
共同点:都不能被实例化都可以包含抽象方法,以及包含具体实现的方法在语义上,都位于系统的抽象层,需要其他类来进一步提供实现细节。区别:接口中的成员变量和方法只能是public类型的,而抽象类中的成员变量和方法可以处于各种访问级别。抽象类比接口包含了更多的实现细节接口中的成员变量只能是public、static和final类型的,而在抽象类中可以定义各种类型的实例变量和静态变量。一个类只能继承一个直接的父类,这个父类有可能是抽象类;但一个类可以实现多个接口。在语义上,接口表示更高层次的抽象,声明系统对外提供的服务。而抽象类则是各种具体类型的抽象。
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点