接口和抽象类有什么区别
2018-11-10 本文已影响0人
刺風
一、抽象类和普通类的区别:
包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,和普通类一样,同样可以拥有成员变量和普通的成员方法,抽象类和普通类的区别如下:
- 抽象方法的访问修饰符必须为public和protected;
- 抽象类不能被实例化;
- 如果一个类继承于抽象类,则子类必须实现父类的抽象方法,如果子类没有实现父类的抽象方法,则子类必须也一个抽象类。
二、抽象类和接口区别如下:
- 抽象类内部可以有方法的实现细节,而接口中只能存在public abstract方法;
- 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
- 接口中不能含有静态代码块以及静态方法,而抽象类中可以有静态代码旷和静态方法;
- 一个类只能继承一个抽象类,而一个类可以实现多个接口。