◆===================◆=========================◆==========================◆========================◆
◆
◆ 对了,我在论坛上做了个投票,关于大家更喜欢那种讲述方式的
◆
◆ 1. 像现在一样诙谐调侃的讲; (让你忽然发现你的大牙已经笑掉了,却也同时发现你已经学会了)
◆
◆ 2. 严肃的课堂形式,即使举例也最好不要太调侃 (传统的课堂式,咱们认真的讲,大家认真的学)
◆
◆ 我想这对大家,对我以后的视频教程都是有帮助的一次调查,如果你看我教程3级以上的话,我希望您能够去投一票,因为随着这个
◆ 系列的结束,后面安排的是设计模式和实例(小到留言本,大到论坛,博客,OA的系列实例)系列视频,大家了解我的性格,我都会选择
◆ 50-300级的大系列,而且关注我的朋友应该都发现了,我们已经又增加了从DIV+CSS 到深入框架和Javascript,数据库等等的7个
◆ 完全不同的系列视频, 所以希望大家做件利人利己的好事,其实这个投票对很多现在学校的教师也会有很大的启发的,相信我!
◆
◆ 投票地址 : www.thc123.com --> 站务管理 ---> 《请选择您希望的视频讲述方式》
◆
◆===================◆=========================◆==========================◆========================◆
接口的映射:我们上面一直说,接口成员必须由类来加以实现,那么我们就把在类中定位接口成员的实现称之为接口的映射.还有个洋名字 interface mapping.
其实呢映射说白了就是一一对应的关系,什么一一对应呢?我们这里说的是接口的映射,那么肯定就是接口中成员和类中实现相对应的接口成员之间的对应关系了。说到这里呢,我们又要回去看下上面那几条没编号的规矩了。
在开始呢我们首先来分析一下他接口寻找映射对象的这个过程
假设我们的 A接口中有一个A1的成员, 而类 B 这个倒霉蛋被安排实现这个接口, 好在B 这个家伙虽然倒霉,可他手中还有点权利,与是他把这个任务交给了求他办事的 C 类,下面我们的领导 XX 就来要实现的结果了,我们看下XX长是怎么找的
首先他去了B 那里 , 他先找B的文件里面,发现没有对应的文件(显示实现的执行体),他又看其他地方,比如看B 的私人秘书那里(非静态的公有成员),看这个秘书有没有办这个事,当然是没有啦,这个秘书可是B 的心头肉,那舍得用啊,当然XX 长很郁闷,到处打听,结果知道 C 在办这个事情,与是他有开始在C 那里找,如果还是找不到(很可能C又安排下去了),他就又继续往下找.反正就按照这个步骤一直找,最后实在找不到,这个很有耐心的XX长就生气了,露出他宁为玉碎不为瓦全的面目来,直接把这个系统就搞得运转不了啦.
注意下下:
1.接口在映射的时候不但包括他自己的成员,同时也包括了他所有继承接口的成员
2.在映射的时候,显示的实现成员比其他的更有优先权
3.prive,protected,static被这些修饰过的成员不能参与接口的实现
看了这么久的例题,我们又回来下
我们都知道类中的成员方法可以被重载, 那么接口中的成员可以被重载吗?
答案是肯定的,其实我们前面的例题中已经说到了,那么这里就再挑破一层面纱吧.
最后呢我们还得再一次的提起抽象类来,其实他一直都在那里看我们分析他的伙伴--接口
我们最后再来个例题,把抽象类个接口给结合起来,这样就算把大部分的东西都讲完了,然后下节我们再来个实际应用的总结.
下面针对抽象类和接口做一个详细的对比
抽象类( abstract method ) | 接口 ( interface ) |
可以包含实现区块 | 不能包含实现区块 |
可以包含抽象方法 | 不能包含抽象方法 |
可以包含非public成员 | 不可以包含非public成员 |
能继承其他的类,包含非抽象类 | 能继承其他接口 |
可以控制版本 | 无法控制版本 |
不能被实例化 | 不能被实例化 |
前面部分的文字资料请看这里 深入继承 - 抽象类和接口
视频下载地址 全部代码下载