A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

接口和抽象类的区别,在开发中都分别什么时候用他们?

5 个回复

倒序浏览
接口是定义规则的拓展功能的,里面的成员变量都是常量,成员函数都是抽象方法,没有构造函数。
抽象类里面不一定有抽象方法,但有抽象方法的一定是抽象类。
回复 使用道具 举报
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象
的普通方法。
4. 抽象类中的抽象方法的访问类型可以是 public, protected 和(默认类型,虽然
eclipse 下不报错,但应该也不行),但接口中的抽象方法只能是 public 类型的,并且默认即
为 public abstract 类型。
5. 抽象类中可以包含静态方法,接口中不能包含静态方法
6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任
意,但接口中定义的变量只能是 public static final 类型,并且默认即为 public static final 类
型。
7. 一个类可以实现多个接口,但只能继承一个抽象类。
回复 使用道具 举报 1 0
本帖最后由 迷路森林 于 2015-11-13 21:04 编辑

成员区别
    抽象类
          有构造方法
          成员变量可是是变量也可以是常量
          成员方法可以是抽象方法也可以不是抽象方法
    接口
          没有构造方法
          成员变量只能是被final修饰的常量
          成员方法只能是没有方法体的抽象方法
成员关系
           类和类   继承  只有单继承
           类和接口 实现   可单实现也可多实现
           接口和接口 继承  可单继承也可多层继承
设计理念(这个面试的重点)           接口:接口被实现,体现的是“like a" 的关系,更多的是体现一种拓展性
           抽象类: 抽象类被继承,体现的是”is a“的关系,更多的是体现它们之间的共性。               
回复 使用道具 举报 1 0
菜鸟飘过!!!!!! 还在学习中
回复 使用道具 举报
java比较推荐面向接口编程,这样在调用的时候不需要知道底层是实现方式,如果程序变动,上层程序基本不会变动
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马