抽象类和接口的区别:
1、从成员变量上区别:抽象类可以有任何形式的成员变量(访问类型可以任意),
而接口中只能有默认的public static final修饰的成员变量;
2、从方法上区别:抽象类中可以有抽象方法(访问类型是public,protected),静态方法,构造方法,普通方法;
而接口中只能有抽象方法(默认public abstract修饰);
3、一个类可以实现多个接口,但只能继承一个抽象类(extends必须写在implements之前)。
补充:a.接口可以继承接口。
b.抽象类中可以有非抽象方法,但是有抽象方法的类一定是抽象类。
c.普通类和抽象类唯一的区别:抽象类不能创建对象(被实例化),抽象类中有抽象方法。
d. 抽象类和接口中定义的抽象方法,必须由子类或实现类全部实现,否则该类必须定义为抽象类。 |