抽象类(abstract class)是一个未完成的类,仅仅抽象类可以包含抽象方法(abstract methods)。抽象方法是仅仅申明了方法,但未实现,它有访问修饰词、返回值类型、方法名、参数列表,但没有无方法体。如果一个子类继承了抽象类,如果子类没有把父类中全部的抽象方法实例化,子类也要定义为抽象类。<o:p></o:p>
接口 (interface)是对abstract类的进一步扩展。接口中的方法都是未实现的(类似于抽象方法),目的是在实现接口的类之间建立一种协议。接口中的方法都是public和abstract。接口中的变量都是常量,接口变量默认都是“public static final”。<o:p></o:p>
抽象类和接口的区别是:如果一个类继承了抽象类,就不可再继承其他类了。接口可以相互继承,可以相互继承多个接口,利用接口可以实现多重继承。一个类实现了接口,还可以继承一个类。抽象类里可以有具体的方法,接口中的方法只能是抽象的方法。抽象类有构造器,接口里不可有构造器。<o:p></o:p>
There are significant differences between abstract classes and interfaces:<o:p></o:p>
1、An abstract class can define instance variables(实例变量), whereas an interface cannot. <o:p></o:p>
2、An abstract class can implement methods, whereas an interface cannot. <o:p></o:p>
3、Interfaces do not contain constructors. <o:p></o:p>
4、If a class extends an abstract class, it cannot extend another class; if a class implements an interface, it is free to extend another class and implement many other interfaces
本文详细阐述了抽象类与接口的概念及其主要区别。抽象类是一个未完成的类,可以包含抽象方法;接口则是定义了一种协议,其中的方法都未实现且默认为public abstract。文章还解释了一个类继承抽象类与实现接口的不同之处。
9万+

被折叠的 条评论
为什么被折叠?



