1、抽象类(abstract class):
抽象类使用abstract关键字修饰。抽象类无法实例化,即不能用new关键字创建一个抽象类的对象。
1.1、抽象方法:
抽象方法使用abstract关键修饰。抽象方法需要定义在抽象类中。抽象方法有别于具体方法,是一种有声明无实现的方法。
1.2、抽象方法与抽象类的关系:
包含抽象方法的类一定是抽象类,此时该类一定要声明成abstract class。如果一个类是抽象类,那么该类即可以包含抽象方法,也可以包含具体方法。
1.3、抽象类的继承:
如果在子类继承一个抽象类的情况下,该子类必须要实现父类中所定义的所有抽象方法;否则,该子类必须声明成一个abstract class。
2、接口(interface):
可以认为接口是一个特殊的抽象类。接口的地位等同于class。接口中的所有方法都是抽象方法。
2.1、声明接口中的方法:
在声明接口中的方法时,可以使用abstract关键字,也可以不使用。因为在接口中默认就为abstract的方法。
接口中所声明的方法都是抽象方法。接口中的方法都是public的。
接口中也可以定义成员变量,定义的成员变量是public final static的。
一个类不能同时使用final和abstract关键字。
2.2、实现一个接口:
一个类实现了某个接口,那么该类必须要实现接口中声明的所有方法。如果 该类是一个抽象类,就无需实现接口中的方法。