首页 > 试题广场 >

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

[问答题]
接口和抽象类的区别是什么?
Java提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:  接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。  类可以实现很多个接口,但是只能继承一个抽象类  类可以不实现抽象类和接口声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。  抽象类可以在不提供接口方法实现的情况下实现接口。  Java接口中声明的变量默认都是final的。抽象类可以包含非final的变量。  Java接口中的成员函数默认是public的。抽象类的成员函数可以是private,protected或者是public。 
发表于 2019-05-05 13:28:08 回复(0)
Java提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:  接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。  类可以实现很多个接口,但是只能继承一个抽象类  类可以不实现抽象类和接口声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。  抽象类可以在不提供接口方法实现的情况下实现接口。  Java接口中声明的变量默认都是final的。抽象类可以包含非final的变量。  Java接口中的成员函数默认是public的。抽象类的成员函数可以是private,protected或者是public。  接口是绝对抽象的,不可以被实例化。抽象类也不可以被实例化,但是,如果它包含main方法的话是可以被调用的。 
发表于 2019-04-29 17:58:37 回复(0)
Java提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:  接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。  类可以实现很多个接口,但是只能继承一个抽象类  类可以不实现抽象类和接口声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。  抽象类可以在不提供接口方法实现的情况下实现接口。  Java接口中声明的变量默认都是final的。抽象类可以包含非final的变量。  Java接口中的成员函数默认是public的。抽象类的成员函数可以是private,protected或者是public。  接口是绝对抽象的,不可以被实例化。抽象类也不可以被实例化,但是,如果它包含main方法的话是可以被调用的。 
发表于 2019-04-27 13:30:51 回复(0)

一个类实现接口、必须实现接口里的所有方法、而且一个类可以实现多个接口(相当于多继承)接口使用interface关键字。而抽象类使用的是abstract 关键字、一个类只能继承一次。继承抽象类的话、是可以不全部实现他的所有方法的。抽象类是用来是用来制定模板的,接口是用来制定标准的,例如工厂设计模式.***模式。而且抽象类有单继承的限制,而接口没有。

发表于 2019-04-25 19:20:49 回复(0)
jdk1.8之前接口只能存在抽象方法,变量都是final 修饰,之后可存在defult修饰的方法
发表于 2019-04-21 17:33:02 回复(0)
java1.8以前接口中方法不能有方法体,1.8以后可以由default关键字修饰,从而可以拥有方法体。
发表于 2019-03-29 17:28:35 回复(0)
两者都不能实例化,抽象类可以包含普通方法,借口只能有抽象方法。抽象类可以由public protected或者默认修饰,接口只能由public修饰。抽象类可以继承一个和实现多个接口。接口只能继承一个或者多个接口。
发表于 2019-02-20 15:54:16 回复(0)
相同:都不能实例化;一个类继承了抽象类或者实现了接口,必须重写抽象方法!不同:接口是比抽象类更为抽象,更加规范,接口中只含有抽象方法的定义和常量,而抽象类可以含有抽象方法也可以含有普通方法,可以有常量,也可以有普通变量!
发表于 2019-02-14 12:42:11 回复(0)