永发信息网

抽象类和接口的区别是什么?你在使用上是如何选择的?

答案:2  悬赏:0  手机版
解决时间 2021-03-22 09:13
  • 提问者网友:謫仙
  • 2021-03-21 16:10
抽象类和接口的区别是什么?你在使用上是如何选择的?
最佳答案
  • 五星知识达人网友:十鸦
  • 2021-03-21 16:52
一、抽象类里面的方法可以有实现,但是接口里面的方法确是只能声明。

二、接口是设计的结果
抽象类是重构的结果

三、java不支持多重继承,所以继承抽象类只能继承一个,但是可以实现多个接口。

1 接口是核心,其定义了要做的事情,包含了许多的方法,但没有定义这些方法应该如何做。
2 如果许多类实现了某个接口,那么每个都要用代码实现那些方法
3 如果某一些类的实现有共通之处,则可以抽象出来一个抽象类,让抽象类实现接口的公用的代码,而那些个性化的方法则由各个子类去实现。
所以,抽象类是为了简化接口的实现,他不仅提供了公共方法的实现,让你可以快速开发,又允许你的类完全可以自己实现所有的方法,不会出现紧耦合的问题。
应用场合很简单了
1 优先定义接口
2 如果有多个接口实现有公用的部分,则使用抽象类,然后集成它。
全部回答
  • 1楼网友:何以畏孤独
  • 2021-03-21 18:11
(1)抽象类中可以有构造器(被子类调用使用,不能创建实例),而接口中不能;
(2)抽象类中可以包含非抽象方法,而接口在JDK1.8中只能有默认方法和静态方法、抽象方法;
(3)抽象类中的方法权限修饰符可以public、protected、默认、private,而接口中方法默认权限修饰符是public abstract;
(4)抽象方法中可以有变量、常量,而接口中只能有静态常量;
(5)抽象类是单继承的,接口是多继承的(当然,只能继承接口)。
至于使用上,尽量使用接口,除非有其它要求(接口不能但抽象能)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯