C#中的接口和抽象类的比较
来源:互联网 发布:搜狐发展 知乎 编辑:程序博客网 时间:2024/06/05 14:59
1 一个类可以实现任意多个 接口,但是最多只能对一个抽象类进行子类化
2 一个抽象类可以包括非抽象方法,而一个接口的所有方法在效果上都是抽象的。
所以抽象类中的方法的访问修饰符可以是public,internl,protected,protected internal或者private,而接口成员的访问修饰符在默认情况下都是public,在声明接口成员时,不允许使用访问修饰符(包括public)。
3.抽象类中可以定义构造函数,接口不能。
4.抽象类包含一个或多个抽象方法(只是定义,无方法体); 还可以有一个多个可执行方法;抽象类可以实现或继承接口;
5接口只含方法、属性、事件、索引等的定义;在接口中定义的变量,会自动地成为类的常量(无须加上static和final);而且这些定义不能有修饰符且都属于Public类型;每个实现该接口的类,必须实现方法;否则编译出错;除非此类定义为抽象类(前面加上abstract);
6.一个类如果要实现某个接口,除非它实现了该接口中承诺的所有方法,否则(即未实现或者仅仅实现部分方法),该类必须被声明为抽象类.而该类的子类也继承了这一特性.如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中实现接口中方法
抽象类和接口的相同的地方:
抽象类和接口都不能被实例化;
接口中的方法也相当于抽象方法(接口是一个完全的抽象方法);
这是因为抽象类和接口的本质有些不同
抽象类是对一些类的对象的一个抽象,是一个不完全的类,需要进一步专业化.接口只是一个行为的规范或规定;
基本上不具备继承的任何具体特点,它仅仅承诺了能够调用的方法;
- C#中的接口和抽象类的比较
- C#抽象类和接口的比较
- 【转载】Java中的接口和抽象类的形象比较
- C#抽象类与接口的比较
- C#抽象类与接口的比较
- C#抽象类与接口的比较
- C#接口与抽象类的比较
- c#中的抽象类和接口
- C#中的抽象类和接口
- C#中的抽象类和接口
- C#中的抽象类和接口
- C#中的抽象类和接口
- 抽象类和接口的比较
- 抽象类和接口的比较
- 抽象类和接口的比较
- 抽象类和接口的比较
- 抽象类和接口的比较
- Java抽象类和接口的比较
- 安装Ms SQL Server 2005 开发版时出现性能计数器要求安装错误的解决办法
- 漫谈软件测试工程师与mercury认证
- Win2003 DHCP服务器配置指南
- JAVA写的文件分割与文件合并程序
- 一些常用的正则表达式
- C#中的接口和抽象类的比较
- "无法找到合适的显示设备.正在关闭程序"
- ADOQuery.post与触发器问题
- 集合詳細學習(包括Vector、ArrayList、List等等的比較與實例)
- 今天第一次用易语言
- 几点精华
- 从洗碗想到的
- 阳台上的茉莉
- 通天塔计划