①:抽象类与接口中都含有抽象方法;
抽象方法:用abstract关键字修饰,无方法体;
②:子类可以继承(extends)抽象类,抽象子类不必重写抽象类(父类)的所有方法,普通子类则必须重写抽象类中所有方法;实现类可以实现(implement)接口,若实现类为非抽象类,则接口中的抽象方法必须全部实现。若实现类为抽象类,则可以只实现接口中的部分方法;
③:若接口中的抽象方法太多,不想全部实现,可以先用一个抽象类去实现接口中你所不需要的方法(写空方法即可{}),再用一个普通子类去继承抽象类,这个子类中就可以只写接口中你所需要的方法,不会造成代码冗余;
④:具有抽象方法的类一定为抽象类;