解答
Java提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:
接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。
类可以实现很多个接口,但是只能继承一个抽象类
类可以不实现抽象类和接口声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。
抽象类可以在不提供接口方法实现的情况下实现接口。
Java接口中声明的变量默认都是final的。抽象类可以包含非final的变量。
Java接口中的成员函数默认是public的。抽象类的成员函数可以是private,protected或者是public。
接口是绝对抽象的,不可以被实例化,抽象类也不可以被实例化。
也可以参考JDK8中抽象类和接口的区别
这套课质量挺值得价格的
大佬,能转载下吗?
不错
学的是计算机专业,虽有一些基础,可还是有难度
接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不去实现它的类。
接口可以多继承,抽象类只能单继承
接口定义方法,不能实现,而抽象类可以实现部分方法。
接口中基本数据类型为static、final而抽类象不是的。
ps:因为对于继承而言,如果继承了一个基类,就会继承该基类的基类,代价是很大的,所以一般来讲,是面向接口开发,实现多个接口降低开发难度
1.接口中所有方法都是抽象的 ,而抽象类中可以有抽象方法和普通方法
2.一个类可以实现多个接口,但只能继承一个抽象类
3.如果一个类继承了一个抽象类或者实现一个接口, 却没有实现其中所有的方法,那这个类还是抽象类.
4.接口的变量都是final的 ,抽象类的变量可以不是final
5.接口中函数是public 抽象类的函数是public ,protected,private
6.区别太多了,没有统一答案的
1.接口的方法默认是public,所有方法在接口中不能有实现,抽象类可以有非抽象的方法
2.接口中的实例变量默认是final类型的,而抽象类中则不一定
3.一个类可以实现多个接口,但最多只能实现一个抽象类
4.一个类实现接口的话要实现接口的所有方法,而抽象类不一定
5.接口不能用new实例化,但可以声明,但是必须引用一个实现该接口的对象