专业的JAVA编程教程与资源

网站首页 > java教程 正文

面向对象特性(6)-- 接口和抽象类的区别

temp10 2025-02-20 17:57:56 java教程 24 ℃ 0 评论

1、为什么会有接口和抽象类?

从语言设计的角度考虑,为什么需要有接口和抽象类?

(1)对事物进行抽象得到类,对普通类的操作得到了基础的封装和继承功能。

面向对象特性(6)-- 接口和抽象类的区别

(2)进一步审查这些类,如果发现:父类知道子类一定要完成某个功能,但是每个子类完成的情况是不一样的子类以后也只会用自己重写的功能,那么父类的功能就可以定义为抽象方法。于是就用到了抽象类。

(3)普通类和抽象类都只能单继承。

(4)进一步审查发现有些对象还可以进一步抽象,而后有时候还需要多继承,这个时候可以使用接口。接口定义了一些行为,继承接口的类应该必须拥有这些行为,按照这些行为去做。接口定义的行为内容子类都要去实现,接口还可以多继承。


2、接口和抽象类的具体区别

  • 接口永远是公共的,而且里面只能有方法,属性,委托和索引器,不能在接口里面写出方法或属性的实现代码而抽象类里面可以拥有字段,抽象方法,非抽象方法
  • 子类实现接口的方法时,不需要任何关键字,直接实现即可。抽象类实现的时候的抽象成员要用override重写
  • 抽象类主要是用来拓展类的功能和属性,而接口主要是用来规定类的行为方式。如果你需要共享状态或部分实现,那么应该使用抽象类。如果你需要定义一组行为,并且不关心具体实现,那么应该使用接口。
  • 接口的意义是为了实现多态。
  • 实现接口的子类必须将接口的所有成员函数实现。
  • 接口可以继承多个接口,抽象类只能继承一个类(一个子类只能有一个父类),且继承的类必须写在最前面



3、接口和抽象类相同的地方

  • 都不能直接实例化(也就是不能new一个对象)
  • 都可以包含未实现的声明方法。
  • 子类必须实现抽象类的抽象方法,接口的所有成员(包括方法,其他成员)

......后续继续补充

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表