抽象类、接口的区别 和 抽象类可以不实现接口的全部方法
来源:互联网 发布:weka 数据挖掘 编辑:程序博客网 时间:2024/05/21 08:49
抽象类和接口的区别
抽象类里面可以有非抽象的方法,接口里只能有抽象方法。
抽象类中的抽象方法声明时不能有大括号,而接口中的所有方法都没有大括号。
抽象类(abstract class):
a.抽象类是仅供派生的类,无法实例化一个抽象类,只能实例化从它派生的类。
b.抽象类的主要特征在于它包含抽象成员(abstract member),抽象成员是不具有实现的一个方法或属性,其作用是强制所有派生类提供实现。
c.由于抽象成员应当是要被重写(override)的,因此这类成员会自动成为virtual成员,而且不能这样显示地声明。
d.抽象成员不能是private的,否则派生类看不见他们。
接口(interface):
a.接口是抽象类的变体。
b.接口的一个关键特征是它既不包含实现,也不包含数据。
c.字段(也就是数据)不能出现在一个接口中,如果一个接口要求派生类包含特定的数据,那么它会使用属性而不是字段。由于属性不会包含任何实现作为接口声明的一部分,所以他不会引用一个支持字段。
d.接口的宗旨是定义由多个类共同遵守的一个契约,所以接口中所有成员都必须为public类型。
抽象类可以不用实现接口的全部方法
有的时候需要将接口和抽象类配合起来使用,这样可以为开发者提供相当的便利性,开发者觉得哪个方便就选用哪个。这样的抽象类称为便利类。此时,便利类并不需要实现接口的所有方法,可以留给继承它的子类去实现它们。
这么做并非是没有意义的,当你自己写的类想用接口中个别方法的时候(注意不是所有的方法),那么你就可以用一个抽象类先实现这个接口(方法体中为空),然后再用你的类继承这个抽象类,这样就可以达到你的目的了,如果你直接用类实现接口,那是所有方法都必须实现的。
抽象类里面可以有非抽象的方法,接口里只能有抽象方法。
抽象类中的抽象方法声明时不能有大括号,而接口中的所有方法都没有大括号。
抽象类(abstract class):
a.抽象类是仅供派生的类,无法实例化一个抽象类,只能实例化从它派生的类。
b.抽象类的主要特征在于它包含抽象成员(abstract member),抽象成员是不具有实现的一个方法或属性,其作用是强制所有派生类提供实现。
c.由于抽象成员应当是要被重写(override)的,因此这类成员会自动成为virtual成员,而且不能这样显示地声明。
d.抽象成员不能是private的,否则派生类看不见他们。
接口(interface):
a.接口是抽象类的变体。
b.接口的一个关键特征是它既不包含实现,也不包含数据。
c.字段(也就是数据)不能出现在一个接口中,如果一个接口要求派生类包含特定的数据,那么它会使用属性而不是字段。由于属性不会包含任何实现作为接口声明的一部分,所以他不会引用一个支持字段。
d.接口的宗旨是定义由多个类共同遵守的一个契约,所以接口中所有成员都必须为public类型。
抽象类可以不用实现接口的全部方法
有的时候需要将接口和抽象类配合起来使用,这样可以为开发者提供相当的便利性,开发者觉得哪个方便就选用哪个。这样的抽象类称为便利类。此时,便利类并不需要实现接口的所有方法,可以留给继承它的子类去实现它们。
这么做并非是没有意义的,当你自己写的类想用接口中个别方法的时候(注意不是所有的方法),那么你就可以用一个抽象类先实现这个接口(方法体中为空),然后再用你的类继承这个抽象类,这样就可以达到你的目的了,如果你直接用类实现接口,那是所有方法都必须实现的。
阅读全文
1 0
- 抽象类、接口的区别 和 抽象类可以不实现接口的全部方法
- 抽象类、接口的区别 和 抽象类可以不实现接口的全部方法
- 抽象类、接口的区别 和 抽象类可以不实现接口的全部方法
- 抽象类、接口的区别 和 抽象类可以不实现接口的全部方法
- 抽象类和抽象方法以及和接口的区别
- 抽象类、抽象方法、接口的区别及实现
- C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别
- C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别
- C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别
- 抽象类可以只实现接口的一部分方法
- C#类、接口、虚方法和抽象方法-抽象类和接口的区别
- C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例
- C#类、接口、虚方法和抽象方法-抽象类与接口的区别与联系
- 接口、抽象类、抽象方法、虚方法 的区别
- 接口、抽象类、抽象方法、虚方法 的区别
- java 的接口可以实现接口吗?抽象类呢?
- 类的抽象和接口的区别
- Java接口和抽象类的区别?(抽象类中可以定义变量)
- oracle-数据库的各种-锁-详解
- unity 24小时日出日落光照效果参考
- OSG的相关的例子
- HBase基础教程--1.2.X版本--基础知识篇(一)
- CallableStatement的用法
- 抽象类、接口的区别 和 抽象类可以不实现接口的全部方法
- 没有博士学位,照样玩转TensorFlow深度学习
- 华为中级【单词倒序】
- Android Apt与annotationProcessor
- C++ opeartor new, new opeartor, placement new
- UART和USART 有区别
- 聊聊mvp架构
- 常用的正则表达式字符表
- p0f