C#学习笔记(三):抽象类和接口
2006-01-09 10:59
169 查看
抽象类和接口的相似处:
抽象类和接口都包含可以由派生类继承的成员。接口和抽象类都不能直接实例化,但可以声明它们的变量。如果这样做,就可以使用多态性把继承这两种类型的对象指定给它们的变量。接着通过这些变量来使用这些类型的成员,但不能直接访问派生对象的其它成员。
抽象类和接口的区别:
派生类只能继承一个基类,即只能直接继承一个抽象类(但可以用一个继承链包含多个抽象类)。相反,类可以使用任意多个接口。
抽象类可以拥有抽象成员和非抽象成员。
抽象成员:没有代码体,且必须在派生类中执行,否则派生类本身必须也是抽象的。
非抽象成员:拥有代码体,也可以是虚拟的,这样就可以在派生类中重写。
接口成员必须都在使用接口的类上执行――它们没有代码体。
接口成员被定义为公共的,但抽象类的成员也可以是私有的受保护的、内部的或受保护的内部成员(其中受保护的内部成员只能在应用程序的代码或派生类中访问)。此外,接口不能包含字段、构造函数、析构函数、静态成员或常量。本文出自 “努力学习的小熊” 博客,转载请与作者联系!
抽象类和接口都包含可以由派生类继承的成员。接口和抽象类都不能直接实例化,但可以声明它们的变量。如果这样做,就可以使用多态性把继承这两种类型的对象指定给它们的变量。接着通过这些变量来使用这些类型的成员,但不能直接访问派生对象的其它成员。
抽象类和接口的区别:
派生类只能继承一个基类,即只能直接继承一个抽象类(但可以用一个继承链包含多个抽象类)。相反,类可以使用任意多个接口。
抽象类可以拥有抽象成员和非抽象成员。
抽象成员:没有代码体,且必须在派生类中执行,否则派生类本身必须也是抽象的。
非抽象成员:拥有代码体,也可以是虚拟的,这样就可以在派生类中重写。
接口成员必须都在使用接口的类上执行――它们没有代码体。
接口成员被定义为公共的,但抽象类的成员也可以是私有的受保护的、内部的或受保护的内部成员(其中受保护的内部成员只能在应用程序的代码或派生类中访问)。此外,接口不能包含字段、构造函数、析构函数、静态成员或常量。本文出自 “努力学习的小熊” 博客,转载请与作者联系!
相关文章推荐
- C#学习笔记(三):抽象类和接口
- Java中的抽象类和接口
- 抽象类和接口的区别,使用场景
- Java中的抽象类和接口
- 接口与抽象类
- 抽象类(abstract class)和接口(interface)有什么异同?
- 黑马程序员-抽象类abstract class 与 接口interface 的区别
- java中抽象类和接口的比较
- 抽象类和接口的区别
- 抽象类与抽象方法和接口
- 抽象类和接口
- 抽象类与接口的理解
- java 抽象类和接口
- 详细解析Java中抽象类和接口的区别
- 抽象类与接口--由一个调用接口方法的小实例所想到的
- 走进java_接口和抽象类的区别
- java心得(抽象类和接口)
- C#接口和抽象类
- PHP中的 抽象类(abstract class)和 接口(interface) (非原创)
- 抽象类与接口