1 抽象类里面的成员变量可以是变量,可以是常量.
接口里面的成员变量全部是常量.
2 抽象类里面的方法可以是抽象方法,也可以是非抽象的方法.
但是接口里面的方法全部是抽象方法.
3 抽象类里面有构造函数,接口里面没有.因为抽象类是类,需要子类继承.子类继承了之后可能会使用父类
里面的一些成员变量,所以定义构造函数进行初始化.
4 抽象类与类之间的关系是继承,所以一个类只能继承一个抽象类.
而接口与类之间的关系是实现,一个类可以实现多个接口.而接口与接口之间是继承,
但是可以多继承.所以java的多继承出现在了接口中.
5 为什么会有抽象类和接口呢.主要是他们的内容的不同.抽象类里面定义的是子类里面的共性的,必须要有的
功能.但是这些功能不同的子类可能会有不同的具体实现细节,所以不写方法体.让子类自己去补充,这样也可以
让他们强制性的去完成,以免忘记.
而接口里面定义的是对象的拓展功能,并不是子类必须要具备的功能,将其定义在接口里面,想要拓展的时候,
就去实现这个接口.所以增强了程序的扩展性. |