含有abstract修饰的类是抽象类,有abstarct修饰的方法是抽象方法,抽象类不能被实例化,抽象方法不能有实现体,只能有方法的声明。抽象类中的方法不一定是抽象方法,但是含有抽象方法的类,必须是抽象类。抽象类中的抽象接口必须在非抽象类型的子类中实现,所以抽象类中不能有抽象构造函数和抽象的静态方法。如果抽象类的子类没有实现父类的方法,那么子类也必须是抽象类。
含interface修饰的类即是接口,接口中的方法必须是抽象的,方法不能有实现体。接口中的方法默认定义为public abstract类型,接口中的成员默认是public static final类型。
抽象类和接口的区别有:
1、抽象类中可以定义构造函数,接口中不能有构造函数;
2、抽象类中可以有普通成员变量,接口中没有普通成员变量;
3、抽象类中可以包含非抽象方法,接口中只能是抽象方法;
4、抽象类中的抽象方法可以用public,protected,默认类型,接口中只能是public abstract;
5、抽象类可以包括静态方法,接口不能;
6、抽象类是继承extends,接口是实现implements;
接口更多是系统架构设计方法发挥作用,主要用于定义模块之间的通信契约。
抽象类在代码实现方面发挥作用,可以实现代码的重用。