黑马程序员技术交流社区

标题: 接口和抽象类的区别,在开发中都分别什么时候用他们? [打印本页]

作者: liuqiang11164    时间: 2015-11-12 23:08
标题: 接口和抽象类的区别,在开发中都分别什么时候用他们?
接口和抽象类的区别,在开发中都分别什么时候用他们?
作者: 1379号监听员    时间: 2015-11-12 23:21
接口是定义规则的拓展功能的,里面的成员变量都是常量,成员函数都是抽象方法,没有构造函数。
抽象类里面不一定有抽象方法,但有抽象方法的一定是抽象类。

作者: xiao15779706    时间: 2015-11-13 09:20
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象
的普通方法。
4. 抽象类中的抽象方法的访问类型可以是 public, protected 和(默认类型,虽然
eclipse 下不报错,但应该也不行),但接口中的抽象方法只能是 public 类型的,并且默认即
为 public abstract 类型。
5. 抽象类中可以包含静态方法,接口中不能包含静态方法
6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任
意,但接口中定义的变量只能是 public static final 类型,并且默认即为 public static final 类
型。
7. 一个类可以实现多个接口,但只能继承一个抽象类。
作者: 迷路森林    时间: 2015-11-13 20:59
本帖最后由 迷路森林 于 2015-11-13 21:04 编辑

成员区别
    抽象类
          有构造方法
          成员变量可是是变量也可以是常量
          成员方法可以是抽象方法也可以不是抽象方法
    接口
          没有构造方法
          成员变量只能是被final修饰的常量
          成员方法只能是没有方法体的抽象方法
成员关系
           类和类   继承  只有单继承
           类和接口 实现   可单实现也可多实现
           接口和接口 继承  可单继承也可多层继承
设计理念(这个面试的重点)           接口:接口被实现,体现的是“like a" 的关系,更多的是体现一种拓展性
           抽象类: 抽象类被继承,体现的是”is a“的关系,更多的是体现它们之间的共性。               

作者: 海贼    时间: 2015-11-13 22:52
菜鸟飘过!!!!!! 还在学习中
作者: jingyezhige    时间: 2015-11-14 14:16
java比较推荐面向接口编程,这样在调用的时候不需要知道底层是实现方式,如果程序变动,上层程序基本不会变动




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2