自己整理的接口和抽象的区别?

1.概念上的区别:接口是对动作的抽象,而抽象类是对根源的抽象。抽象类表示的是这个对象是什么,接口表示的是这个对象能做什么。比如:哈士奇,金毛他俩都属于狗,他们的抽象类就是狗。猫可以吃东西,狗也可以吃东西,你可以把"吃东西"定义成一个接口,然后让这些类去实现他。所以,一个类只能继承一个抽象类,但是可以实现多个接口。    

2.接口可以多继承,而抽象类不可以多继承;

3.抽象类中可以有方法体,而接口中不可以有方法体(JDK1.8之后可以有方法体);

4.接口中基本数据类型为static.而抽象类不是的。

5.接口中声明的变量默认都是final。抽象类可以包含非final的变量。

6.接口中的成员函数默认都是public。抽象类的成员函数可以是private,protected或者是public.

7.当你关注一个事物的本质的时候,用抽象类。

8.当你关注一个操作的时候,用接口。

猜你喜欢

转载自blog.csdn.net/qq_34939308/article/details/80244801