菜比之路

走菜比的路,让大牛说去吧
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

【java】抽象类和接口区别

Posted on 2017-12-12 15:20  毕加索的ma  阅读(127)  评论(0编辑  收藏  举报

1.语法层面上的区别

  1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;

  2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;

  3)接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;

  4)一个类只能继承一个抽象类,而一个类却可以实现多个接口

2.设计层面上的区别

  1)抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对行进行抽象。

  2)抽象类是是不是的关系,接口是有没有的关系。比如飞机和鸟,蜂鸟,麻雀继承了鸟的属性。飞机和鸟有飞行属性,因为可以把飞行定义为接口。