黑马程序员技术交流社区
标题:
抽象类和接口
[打印本页]
作者:
lostnotes
时间:
2015-3-14 10:00
标题:
抽象类和接口
昨天被问到这个问题想了半天没回答上来求教各位大神了
抽象类和接口有什么区别和联系?
作者:
huhanghao
时间:
2015-3-14 11:38
在初期的理解时,我们可以把接口理解为特殊的抽象类。接口和抽象类一样,在继承或者实现之后,如果希望之类不再是抽象类,就需要讲其中的抽象方法复写。对于接口来说,里面的方法必须是抽象方法。但是对于类来说却不一样,一个抽象类,里面可以有抽象方法,也可以没有。但是一旦类中有抽象方法,就必须讲类申明为抽象类
作者:
吴阳
时间:
2015-3-14 14:06
抽象类: 1) 抽象方法,只有行为的概念,没有具体的行为实现。 使用:abstract 关键字修饰,并且没有方法体。 2) 包含抽象方法的类,就一定是抽象类。 使用: abstract 关键字修饰,包含抽象方法。 3) 抽象类不能直接创建实例。可以定义引用变量。 4) 抽象类只能被继承,一个具体类继承一个抽象类,必须实 现所有抽象方法。 5) 抽象方法和抽象类非常适合作为系统的分析和设计的工具。接口: 1 接口:全部的方法都是抽象方法,全部的属性都是常量。 接口用来表示纯抽象概念,没有任何具体的方法和属性。 2 不能实例化,可以定义变量。 3 接口变量可以引用具体实现类的实例。 4 接口只能被实现(继承),一个具体类实现接口,必须使用全部的 抽象方法。 5 接口之间可以继承。 6 一个具体类可以实现多个接口,实现多继承现象,表示: 7 接口中的属性,默认是常量 public static final 8 接中的方法一定是:public abstract 9 实现一个接口,使用关键字implements, 实现实际上是 一种继承关系。接口和实现类是父子类型的关系
作者:
王刚岩
时间:
2015-3-14 14:57
简单来说, 接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的, 另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。 还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.
作者:
夏鹏
时间:
2015-3-14 16:04
接口是特殊的抽象类 这么理解
接口里所有的属性都是public static abstract 的 哦 接口不能new 只能被实现 一旦实现 强制要求实现其所有的方法
而抽象类 继承后仅实现其abstract方法即可 理解的不是很到位 可供参考
作者:
Shey
时间:
2015-3-14 16:35
我们打个比方:
抽象类:手机,平板,MP4等等有很多的共同点,但又不像苹果,小米为同一类型(手机),于是可以把这些共同点抽象出来作为一个抽象的的类型“移动设备”,这些共同点包括“属性”“行为”等;
接口:手机,平板都有蓝牙,而MP4却没有,那么对于这些很小,小到某个点的方法或属性,我们就可以单独提取出来作为一个独立存在的方法,任何类型接上这个接口都能拥有这样的方法,而且接口的作用就是降低耦合;
作者:
火七君
时间:
2015-3-14 17:13
1、
抽象类是继承,继承只能单继承
接口是实现,实现可以多实现
2、
抽象类中可以定义非抽象方法,供子类直接使用。
接口的方法都是抽象,接口中的成员都有固定修饰符。
3、
抽象类中可以私有变量或方法。
接口中的常量和方法都是public修饰的权限。
作者:
快乐ABC
时间:
2015-3-14 19:26
1.接口一般是用来进行功能扩展的,而抽象类一般是类的向上抽取
2.接口中的方法都是抽象的,而抽象类中可以有抽象的方法也可以有非抽象方法,如果一个类没有实现接口中的所有的抽象方法,只实现了部分,该类就是抽象类
3.接口中定义的常量和抽象方法的修饰符是固定的,而抽象类中的需要自己指定
4.抽象类只能单继承,接口可以多实现
5.接口和抽象类都可以实现多态特性
作者:
突然世界晴
时间:
2015-3-14 23:27
长知识了,总结的都很到位
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2