接口(interface)原来是可以被继承(extends)的 2007-07-20 10:19:00
2016-04-18 15:35
253 查看
接口(interface)原来是可以被继承(extends)的 2007-07-20 10:19:00
标签:接口
继承
休闲
职场
原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。http://zhoufoxcn.blog.51cto.com/792419/163956
在传统的教科书或者书籍中都会灌输我们一个观念,那就是抽象类可以被继承(extends),接口可以被实现(implements),但是抽象类不能被实现(implements),接口也不能被继承(extends),但是今天这个观点有些地方被颠覆了。
抽象类可以被继承(extends),接口可以被实现(implements),但是抽象类不能被实现(implements),这三个观点确实没有什么问题,但是接口却是可以被继承的,当然你也许会举一个类似下面的例子来证明接口是不能被继承的,代码如下:
确实上面的代码不能被编译通过,会出现以下错误:
也许你就想以上面的例子来证明我的观点是错误的,但是请看下面的例子:
看看图中高亮部分代码,它是可以通过编译的,下面的编译结果:
另外在C#中我也做过测试,因为在C#中实现和继承没办法从类似于java的implements或者extends关键字看出来,它都是用:符号来体现的,不过看具体代码还是可以看出来的,请看下面一段代码:
using System;
using System.Collections.Generic;
using System.Text;
namespace Day2
{
interface InterfaceA
{
int Add();
}
interface InterfaceB : InterfaceA
{
int Minus();
}
}
这段代码是可以在VS中编译通过的。
通过以上实例说明接口之间是可以继承的,也就是所谓的接口扩充,这样一来继承了一个接口的类就有了两个接口的方法。
总结:接口可以继承接口,类只能实现接口。
本文出自 “周公(周金桥)的专栏” 博客,请务必保留此出处http://zhoufoxcn.blog.51cto.com/792419/163956
标签:接口
继承
休闲
职场
原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。http://zhoufoxcn.blog.51cto.com/792419/163956
在传统的教科书或者书籍中都会灌输我们一个观念,那就是抽象类可以被继承(extends),接口可以被实现(implements),但是抽象类不能被实现(implements),接口也不能被继承(extends),但是今天这个观点有些地方被颠覆了。
抽象类可以被继承(extends),接口可以被实现(implements),但是抽象类不能被实现(implements),这三个观点确实没有什么问题,但是接口却是可以被继承的,当然你也许会举一个类似下面的例子来证明接口是不能被继承的,代码如下:
确实上面的代码不能被编译通过,会出现以下错误:
也许你就想以上面的例子来证明我的观点是错误的,但是请看下面的例子:
看看图中高亮部分代码,它是可以通过编译的,下面的编译结果:
另外在C#中我也做过测试,因为在C#中实现和继承没办法从类似于java的implements或者extends关键字看出来,它都是用:符号来体现的,不过看具体代码还是可以看出来的,请看下面一段代码:
using System;
using System.Collections.Generic;
using System.Text;
namespace Day2
{
interface InterfaceA
{
int Add();
}
interface InterfaceB : InterfaceA
{
int Minus();
}
}
这段代码是可以在VS中编译通过的。
通过以上实例说明接口之间是可以继承的,也就是所谓的接口扩充,这样一来继承了一个接口的类就有了两个接口的方法。
总结:接口可以继承接口,类只能实现接口。
本文出自 “周公(周金桥)的专栏” 博客,请务必保留此出处http://zhoufoxcn.blog.51cto.com/792419/163956
相关文章推荐
- 17、责任链模式(ChainofResponsibility)
- poj 2724 最大独立集
- 欢迎使用CSDN-markdown编辑器
- Android 加载高清大图
- 圆形选择菜单
- Hibernate介绍
- Android:身高、体重横向滚动刻度尺选择器
- 数据库中for update的使用
- React学习总结
- android 提高进程优先级 拍照永不崩溃(闪退)
- Web项目中 .classpath、.mymetadata、.project文件的作用
- 内核模块三要素及Makefile的设计
- 16、观察者模式(Observer)
- 错误:HTTP load failed (kCFStreamErrorDomainSSL, -9813)/Error Domain=NSURLErrorDomain Code=-1202
- 设置分隔线
- android推送,极光推送
- 【windows】是谁占用了你的端口?
- 无法启动此程序,因为计算机中丢失AdbWinApi.dll。尝试重新安装该程序以解决此问题
- Field 'email' doesn't have a default value
- 训练赛总结