抽象类和接口(Abstract Class And Interface)

Java中最基本的概念就是”类“也就是Class,由于类的存在,使得Java有了面向对象的基础。

在此基础上,抽象类(abstract class)和接口(Interface)更是对Java的面向对象编程进行了扩展、升级。

 

所以,如果能从面向对象的角度,理解抽象类和接口存在的意义,也就能轻松地解释它们之间的这些联系和区别;

 

  抽象类是一个不完整的类,需要进一步细化,而接口是一个行为规范。

    ***不完整需子类细化:抽象类有些只声明了方法,为的是让子类实现具体的操作***

    ***行为规范:相比抽象类接口就彻底不完整了,因为它里面都只是声明方法,没具体说这个方法要干嘛。因为它只是规范子类必须去实现的方法,告诉子类:"你能做..."***

  抽象类 是从一系列相关对象中抽象出来的概念,   反映的是事物的内部共性 

  接口  是为了满足外部调用而定义的一个功能约定, 反映的是事物的外部特性 

 

首先,说说它两的相同点:

  1.都不能被实例化  

  2.都可以通过继承(或实现)的子类,实现其未实现的抽象方法 

然后,是它们的不同点:

  1.关于声明的方式

    写法不同, 抽象类(abstract class)和接口(Interface)

 

  2.关于它们内部的方法(函数)

 

    抽象类 中的方法可以不是抽象方法——可以实现方法

      ***实现方法:也就是函数中可以写具体的逻辑代码;         由于子类具有相关性,这里定义的就是它们公共的方法***

    接口中的方法必须是抽象方法——不能去实现方法

      ***不能去实现方法:也就是函数体必须为空,只写一个函数名放那;  由于实现接口的这些类未必有联系,所以这里不应该去实现具体的方法***

 

  3.关于被继承/实现的次数

    抽象类单一继承,接口多重实现

      ***一个类只能继承一个抽象方法,却可以实现实现多个接口;接口可以用于扩展对象的外部特性***

 

posted @ 2017-08-17 15:12  Reylee  阅读(301)  评论(0编辑  收藏  举报