知识大全 接口和抽象类有什么区别
Posted 教师
篇首语:胸怀万里世界, 放眼无限未来。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 接口和抽象类有什么区别相关的知识,希望对你有一定的参考价值。
作者 Allen 抽象方法是必须实现的方法 就象动物都要呼吸 但是鱼用鳃呼吸 猪用肺呼吸 动物类要有呼吸方法 怎么呼吸就是子类的事了 现在有很多讨论和建议提倡用interface代替abstract类 两者从理论上可以做一般性的混用 但是在实际应用中 他们还是有一定区别的 抽象类一般作为公共的父类为子类的扩展提供基础 这里的扩展包括了属性上和行为上的 而接口一般来说不考虑属性 只考虑方法 使得子类可以自由的填补或者扩展接口所定义的方法 就像JAVA王子所说的事件中的适配器就是一个很好的应用 用一个简单的例子 比如说一个教师 我们把它作为一个抽象类 有自己的属性 比如说年龄 教育程度 教师编号等等 而教师也是分很多种类的 我们就可以继承教师类而扩展特有的种类属性 而普遍属性已经直接继承了下来 而接口呢~还是拿教师做例子 教师的行为很多 除了和普通人相同的以外 还有职业相关的行为 比如改考卷 讲课等等 我们把这些行为定义成无body的方法 作为一个集合 它是一个interface 而教师张三李四的各自行为特点又有不同 那么他们就可以扩展自己的行为body 从这点意义上来说 interface偏重于行为 总之 在许多情况下 接口确实可以代替抽象类 如果你不需要刻意表达属性上的继承的话 cha138/Article/program/Java/hx/201311/26846相关参考