Abstract Class 和interface的区别

来源:互联网 发布:什么是大数据,云计算 编辑:程序博客网 时间:2024/06/10 03:10

本质上来说,接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。

1.抽象类表示的是这个对象是什么,接口表示的是这个对象能做什么。比如男人和女人这两个类,可以抽象成一个抽象类叫做人,人可以吃东西,够可以吃东西,吃东西就可以定义为接口

2.所以在高级语言中,抽象类只能继承一个,接口可以实现多个

3.接口中的方法全部全部抽象,而抽象类至少需要一个抽象方法

4.抽象类的方法必须在子类中实现,所以抽象类不能有抽象构造方法和抽象静态方法,抽象类的子类只要有一个抽象方法没有实现,则这个子类也必须是抽象的。抽象类可以有静态方法,但是接口不能有

5.抽象类的抽象方法可以是public,protected,default,但是接口中的抽象方法只能是public,且默认是public abstract

6.抽象类可以包含静态成员变量,且访问类型任意,接口中的成员变量必须是public static final。



0 0