抽象类(abstract)和接口(interface)的区别
抽象类(abstract)
- 只有方法名和参数,没有方法体
- 抽象方法一般存在于抽象类中
- 有抽象方法的一定是抽象类
- 抽象类里不一定有抽象方法
- 抽象类被别的类继承(继承只能单继承),子类一定要重写抽象类中的抽象方法,如果子类也是抽象类则不用重写
- 抽象方法不能被static、final修饰,因为它需要被重写
- 不能被实例化,即不能new一个对象
接口(interface)
- 用interface修饰,只有抽象方法和常量和引用数组类型
- 接口可以被多实现(通俗说就是可以多继承)
- 不能被实例化,即不能new一个对象
- 接口中只能有抽象方法,没有构造方法
- 接口里面只能有常量,并且不能私有化,默认是public static final型,且必须初始化,实现类中不能重新定义和修改值
- 接口可以被接口继承 ,可以是多继承(先继承再实现)
抽象类和接口的区别
1.抽象类和接口都不能被实例化;
2.抽象类使用abstract修饰,接口用Interface修饰;
3.抽象类是单继承,一个类只能使用一次继承关系,继承用关键字extends;
接口可以多继承(extends)多实现(interface),多实现的时候用逗号(,)隔开;
4.抽象类里面可以有变量,变量可以私有化;
接口里只有常量,默认是public static final,不能被私有化,只能是公开的(public);
5.抽象类可以有抽象方法,只需要声明,无需实现;抽象方法不能声明为静态的,不能被static、final修饰;
接口里的方法都是抽象方法,但是都只是声明,并没有方法体,而且没有构造方法;
6.抽象类里面可以包含抽象方法和非抽象方法,抽象方法没有方法体,但是普通方法里面有方法体;有抽象方法的一定是抽象类,抽象类里不一定有抽象方法;一个类继承了抽象类,如果这个类实现了抽象类里面的所有抽象方法,那么该类可以不是抽象类,但是如果没有实现所有的抽象方法,那该类是抽象类
标签:继承,abstract,接口,抽象,interface,抽象类,方法 From: https://www.cnblogs.com/yinza181/p/17752479.html