校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > java语言 > 继承&接口
题目

接口和抽象类的区别是什么?

解答

Java提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:
接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。
类可以实现很多个接口,但是只能继承一个抽象类
类可以不实现抽象类和接口声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。
抽象类可以在不提供接口方法实现的情况下实现接口。
Java接口中声明的变量默认都是final的。抽象类可以包含非final的变量。
Java接口中的成员函数默认是public的。抽象类的成员函数可以是private,protected或者是public。
接口是绝对抽象的,不可以被实例化,抽象类也不可以被实例化。
也可以参考JDK8中抽象类和接口的区别

C 7条回复 评论
梦里不知身是客

这套课质量挺值得价格的

发表于 2022-05-15 21:00:00
0 0
雾岛残月

大佬,能转载下吗?

发表于 2022-05-13 22:00:00
0 0
Peach

不错

发表于 2021-12-06 23:00:00
0 0
灵魂火符

学的是计算机专业,虽有一些基础,可还是有难度

发表于 2021-10-12 22:00:00
0 0
真吾

接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不去实现它的类。
接口可以多继承,抽象类只能单继承
接口定义方法,不能实现,而抽象类可以实现部分方法。
接口中基本数据类型为static、final而抽类象不是的。
ps:因为对于继承而言,如果继承了一个基类,就会继承该基类的基类,代价是很大的,所以一般来讲,是面向接口开发,实现多个接口降低开发难度

发表于 2020-11-03 10:23:56
0 0
采苓子

1.接口中所有方法都是抽象的 ,而抽象类中可以有抽象方法和普通方法
2.一个类可以实现多个接口,但只能继承一个抽象类
3.如果一个类继承了一个抽象类或者实现一个接口, 却没有实现其中所有的方法,那这个类还是抽象类.
4.接口的变量都是final的 ,抽象类的变量可以不是final
5.接口中函数是public 抽象类的函数是public ,protected,private
6.区别太多了,没有统一答案的

发表于 2020-11-03 10:12:57
0 1
望岳

1.接口的方法默认是public,所有方法在接口中不能有实现,抽象类可以有非抽象的方法
2.接口中的实例变量默认是final类型的,而抽象类中则不一定
3.一个类可以实现多个接口,但最多只能实现一个抽象类
4.一个类实现接口的话要实现接口的所有方法,而抽象类不一定
5.接口不能用new实例化,但可以声明,但是必须引用一个实现该接口的对象

发表于 2020-11-03 10:12:59
0 1