黑马程序员技术交流社区
标题:
抽象类和接口
[打印本页]
作者:
朱烈葵
时间:
2012-8-30 09:09
标题:
抽象类和接口
既然有了接口,为什么还要抽象类呢?
作者:
黑马张旭明
时间:
2012-8-30 09:30
1.接口全部都是抽象方法,必须全部覆盖,而抽象类则只有一部分抽象方法。如果我要定义一个类里面有些方法希望被覆盖,有些方法看情况覆盖,有些方法不希望覆盖(final修饰),接口就不能达到要求了,只有抽象类满足要求。
2.接口允许多实现,而抽象类和一般类一样只能单继承,假如定义一个类,这个类可以实现多个接口,但是只能继承一个抽象类。
作者:
朱烈葵
时间:
2012-8-30 10:02
黑马张旭明 发表于 2012-8-30 09:30
1.接口全部都是抽象方法,必须全部覆盖,而抽象类则只有一部分抽象方法。如果我要定义一个类里面有些方法希 ...
有道理,应该是这样
作者:
蓝迪
时间:
2012-8-30 10:26
接口和抽象类的区别:
1 抽象类中有抽象方法和非抽象方法,所有当子类继承父类的时候,子类就可以直接把父类中的非抽象方法拿来用,不需要全部复写,就能创建对象
接口中全都是抽象方法,当子类实现接口时,必须把所有的抽象方法全部复写,才能创建对象进行实例化
既然抽象类那么轻松,那为什么还要接口呢?
2 因为java中不支持多继承,只能单继承,但是,接口可以被类多实现,也是对多继承不支持的转换形式,java支持多实现
不支持多继承的原因: 是因为父类当中的方法可能会重复,会导致子类调用此方法会出现问题
而支持多实现的原因: 是因为接口中的方法都是抽象的,没有方法体,可以让子类任意定义
一个类在继承一个类的同时还可以实现多个接口
这样更方便于对程序进行功能扩展
作者:
孙鑫
时间:
2012-8-30 17:27
不是所有的都要用接口而不用抽象类
接口用来定义行为,实现接口的类可以实现这些行为,从而使定义与实现分离
抽象类作为公共的父类,继承它的子类能复用或扩展父类的某些行为或属性
作者:
给生活加点料
时间:
2012-8-30 18:47
声明方法的存在而不去实现它的类被叫做抽象类,它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。
接口是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2