森栏
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制。它们之间区别:接口是公开的,里面不能有私有的方法或变量,而抽象类是可以有私有方法或私有变量的;代码演示:接口Apublic interface A { public abstract void play() ; public abstract void beFriendly(); }接口Bpublic interface B { public abstract void play() ; public abstract void beFriendly(); }一个类实现多个接口@Service("weixinPay")public class WeixinPay implements Pay{@Overridpublic Object pay(Map map){return "weixinpay";}}接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量; 实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现;接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现;接口可以实现多重继承,而一个类只能继承一个超类;扩展资料:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。两种含义:一,Java接口,Java语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“Java接口”,后者叫做“接口”。功能在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。接口实现和类继承的规则不同,为了数据的安全,继承时一个类只有一个直接父类,也就是单继承,但是一个类可以实现多个接口,接口弥补了类的不能多继承缺点,继承和接口的双重设计既保持了类的数据安全也变相实现了多继承。