抽象类是用来捕捉子类的通用特性的,而接口则是抽象方法的集合;抽象类不能被实例化,只
    能被用作子类的超类,是被用来创建继承层级里子类的模板,而接口只是一种形式,接口自身
    不能做任何事情。
    其次,抽象类可以有默认的方法实现,子类使用extends关键字来继承抽象类,如果子类不是
    抽象类的话,它需要提供抽象类中所有声明方法的实现。而接口完全是抽象的,它根本不存在
    方法的实现,子类使用关键字implements来实现接口,它需要提供接口中所有声明方法的实
    现。
    抽象类可以有构造器,除了不能实例化抽象类之外,它和普通Java类没有任何区别,抽象方法
    可以有public、protected和default这 些修饰符。而接口不能有构造器,是完全不同的类
    型,接口方法默认修饰符是public,不可以使用其它修饰符。子类在实现接口中的函数时要定义为public