blyang 你长的很好看啊~
Java抽象类和接口
发表于: | 分类: Java | 评论:42 | 阅读: 118922

抽象类和接口是相似的两个单元。不同的是抽象类作为一种专用父类,用extends实现。而接口作为一种专门的规范,用implements实现。接口比抽象类更纯粹的实现了声明和实现的分离。


抽象类

抽象类可以看作是一个专门的父类,为所有的子类提供一个通用的模板,另外能避免子类设计的随意性,严格限制子类的设计。

抽象类也是一个类,只是比普通的类多了抽象方法。抽象方法是指只有声明,而没有实现的方法,用abstract说说那个命,相应的类也需要用abstract声明。

抽象类有下面几个特点:

  • 包含抽象方法的类只能定义为抽象类
  • 抽象类不能实例化,不能直接new出来
  • 抽象类可以包含属性、方法、构造方法,但是不能new出来实例,只能被子类调用
  • 抽象类只能用来继承
  • 抽象方法需要被子类实现,子类必须覆写所有的抽象方法之后才能被实例化,否则这个子类还是个抽象类


接口

接口本质上是一个规范,专业的实现了方法的声明和实现的分离。接口是比抽象类还要抽象的类,更纯粹的做了方法声明。接口就像是一种约定,约定了类中应该包含什么方法,但是并不写方法的实现

  • 接口中的数据成员必须初始化,而且数据成员必须为常量。默认被final声明
  • 接口中的方法全部是抽象方法,用abstract声明,不能包含一般的方法


两者的区别

  • 接口是一种规范,用implements实现,抽象类是一种专门的父类,用extends实现
  • 接口中不能包含方法实现,抽象类中可以包含方法实现
  • 接口将方法声明和实现完全分离,抽象类中还能够包含方法实现

添加新评论

TOP