首先,抽象类和接口拥有一个共同点,就是都不能实例化对象,即不能new对象。
其次抽象类和接口的不同点大概有以下几点:
【1】是否拥有构造方法:
抽象类:可以有构造方法。为子类准备的用来实例化对象的。
接口:没有构造方法,因为它是一个interface接口,不是一个类。
【2】变量的访问修饰符
抽象类:变量的访问修饰符可以任意:public /private/ default/ protected都可以
接口:变量的访问修饰符只能是public static final
【3】可以拥有什么样的方法
抽象类:可以有普通方法,也可以有抽象方法
接口:只能是抽象方法public abstract
【4】继承关系方面:
抽象类:有关系(x是一个y)的类才能继承抽象类(类)比如Person 类和Student类,Student 是一个Person,即一个学生是一个人
接口:多个无关的类可以实现同一个接口
类和接口之间的关系:
类和类:单继承 一个类只能直接继承自一个类
类和接口:多实现 一个类可以同时实现多个接口
接口和接口:多继承 一个接口可以继承自多个接口
public interface xxx extends Person,Student...{}