1、抽象类:
--将子类含有的相同功能抽取出来,有构造函数,但是不能创建对象(和接口一样只有方法的声明没有方法的实现,创建对象没有意义),抽象类中的方法不一定都是抽象方法。
--子类在继承抽象类的时候必须重写所有的抽象方法,否则该子类也是抽象类。
2、接口:
--接口是功能的集合,没有构造函数,里面所有的方法都是抽象方法
--接口中的变量都是常量,并且格式固定,public static final 数据类型 变量名 = 变量值;
--子类在实现接口的时候必须重写所有的抽象方法,否则该子类也是抽象类。