Java抽象类、接口用法

抽象类与接口的区别

  1. 语法用法上的区别。
    在抽象类中,抽象类可以拥有更丰富类型成员变量,同时也可以拥有自己的非抽象方法。但是在接口中,它仅能够有静态、不能修改的成员数据(即final static,但是我们一般是不会在接口中使用成员数据),同时它所有的方法都必须是抽象的。在某种程度上来说,接口是抽象类的特殊化。

  2. 抽象层次上的区别。
    抽象类是内容,是对一种事物的抽象,是整体上的抽象。比如,老师是所有教师的抽象,老师的工作是教育学生。
    接口是特征,是对一种行为的抽象,是局部抽象,比如,上课、批改作业、家访。

  3. 抽象概念上的区别。
    抽象类所体现的是一种合理的继承关系,即父类和子类在概念本质上应该是相同的。对于接口则不然,并不要求接口的实现者和接口定义在概念本质上是一致的, 仅仅是实现了接口定义的契约而已。

抽象类和接口是java语言中两种不同的抽象概念,他们的存在对多态提供了非常好的支持,虽然他们之间存在很大的相似性。但是对于他们的选择往往反应了我们对问题的理解程度。

 

posted @ 2019-07-10 16:40  XUBAOYI  阅读(336)  评论(0编辑  收藏  举报