接口,java中很重要的概念。
在大学的时候(当然了,我大学没怎么学习,混了),对接口的认识就是,它是一种规范,里面都是抽象方法,没有具体实现,也就是没有这些方法的方法体,实现它的类,一定要实现它的方法。哎,这些话,只要你看过一次介绍接口的资料,谁都会说。
后来工作了,结果所有同事都只会说这些话,而且都认为自己很好的理解了。
随着看书的学习,我知道了接口和多态,后期绑定这些概念,要在一起理解,比如现在有个方法a,参数可以是接口类型的引用,然而最后传递进去的参数,都是实现了这个接口的类的对象,这里就要理解多态和后期绑定了。从而能看出接口的好处了:方法a的参数是接口的引用,你就不用对这这个接口的好几百种实现,每个实现写一种方法了,只是对接口类型写,然后通过多态和后期绑定,这都是java自己帮你完成的,修改起来也方便,毕竟只有一个方法,要是再有新的实现也没问题,如果不这样,每有一个新的实现,就要再写一个方法。
如下:
接口是处理字符串用的。
interface Processor{
public String name();
Object process(Object input);
}
1.实现类是变大写的
class Upcase implements Processor{
public String name(){
return getClass().getSimpleName();
}
String process(Object input){
return ((String)input).toUpperCase();
}
}
2:实现类是变小写的
class Lowercase implements Processor{
public String name(){
return getClass().getSimpleName();
}
String process(Object input){
return ((String)input).toLowerCase();
}
}
3.实现类是分隔字符串的
class Splitter implements Processor{
public String name(){
return getClass().getSimpleName();
}
String process(Object input){
return Arrays.toString(((String)input).split(" "));
}
}
public class Apply {
public static void process(Processor p ,Object s){
System.out.println("Using Procsssor"+p.name());
System.out.println(p.process(s));
}
public static String a ="Dinnger Ni hao Wo ai kkkkkkkkkkkkKKKKKKKKK";
public static void main(String[] args) {
process(new Upcase(), a);
process(new Lowercase(), a);
process(new Splitter(), a);
}
}
写了一个process方法,其中参数有Processor p,就是我最开始叙述的那样。
目前我就理解了接口的这2点,但是很多次再看到接口,还是很迷惑,不明白
第一点好想:是规范吗,你在某一领域经验太少,人家就帮你写好规范,你只要照着全实现了,就可以了。就完成了。
比如让你实现ServletContext监听器,你不会,人家告诉你,你只要实现2个接口ServletContextListener和ServletContextAttributeListene,就行了。你就实现去把。
第二点呢,就是这些上述代码,我看了看人家写的文章,叫面向接口编程,也不知道我理解的对不对。就是对着接口编,然后由它的实现类来最后解决问题。
最近看jsp,request对象的类型是接口,但是你可以用这个对象得到参数啊,或者用它的其他方法,我就不明白了,我也没写实现啊,怎么就能用它的方法了呢,后来明白了,这叫内置对象,就是可以直接用,你自己不用写实现。但是,我看很多资料,都是接口类型的引用,就可以直接调它的方法了。我根本没写实现,也没找到它在哪写的实现,反正就是能调用它的方法了。
我在公司也像很多人问过,都很瞧不起我,觉得我还在搞java基础的东西,但是他们也不能解答,在他们眼里,不需要这些东西,会用就行,不用知道为什么这样用。我不想这样,所以很想搞明白它。java基础是最重要的。
希望大家能谈谈自己的理解,教教我,使我能开一下眼界。
最后附上我总结的java绑定,也是从一本书上看到的,然后再自己理解一下:
就是A,B有继承关系,他们都有方法f(),现在A a = new B(),
a.f()到底调用谁的f()。
1) 实例方法与引用变量的实际引用对象的方法绑定,这是动态绑定,java虚拟机决定的。
2) 静态方法与引用变量所声明的类型的方法绑定。这属于静态绑定,编译期就绑定了。
3) 成员变量与引用变量所声明的类型的成员变量绑定,这种绑定属于静态绑定,编译期就绑定了。
分享到:
- 2008-11-08 18:31
- 浏览 914
- 评论(7)
- 论坛回复 / 浏览 (7 / 3286)
- 查看更多
相关推荐
初中语文语文论文让学生畅所欲言
畅所欲言:古今燃料的变化.ppt
本文档包含了struts2的JSP页面、Action类以及校验框架xml的国际化支持
畅所欲言光通信——第二届光通信技术与市场研讨会精彩发言摘要.pdf
每名学生都畅所欲言,谈谈自己的 想法,这样既锻炼学生的思维,也锻炼了学生的语言表达能力。接下来,由教师总结出 电子邮件的概念。 2)E-mail地址 师:在因特网上用电子邮箱可以收发邮件。每个电子邮箱都有确定的...
那个时候对于代码封装,命名规范不太明确,所以代码写的极不规范,对,是极不规范。没有任何参考价值。 它大概是这样样子的 最后在扯一点 大四狗是一个针对大四即将毕业和已经毕业同学的一个交流平台。在这里有...
同学们坐在一起畅所欲言,互相讨论,交流,把自己不理解,不明白的地方提出来,让老师来帮助解决,这样使得相互之间都得到了学习,稳固知识的时机,提高了学习的效率。 通过这次学习我真正体会到了计算机知识的更新...
经历过 NOME 的人不应该觉得自己是局外人或变态,应该畅所欲言地谈论他们的不寻常经历,专业人士应该以开放、不带偏见和不评判的态度倾听他们的意见。 NOME 挑战统治立场医学和心理科学,并提出了人类意识的有趣...
本座也知道,如果过程规范讲的太具体对谈论者来说是非常冒险的一件事情,它不像技术,对就对错就错,有一个客观的评判标准,别人想喷你也得自己先好好研究等拿到了足够的论据才能喷,但开发过程和项目管理就不同了,...
建议读硕士的看一下 硕士应看的论文建议读硕士的看一下 感觉到了博士才...也经常有研究生不理解"为什么我做了大部分工作而老板却让另一个没怎么干活的人写了文章?让他去大会发言?"你没有看到人家有张口就来的本事吗?
外面的人不懂爱情而说不出来,出来的人对爱情迷惑而说不出来,只有围城里的人知道如何解释爱情,但他们都没出来 的确,爱情到了居家过日子的相处,就会因为柴米油盐而少了当初那份浪漫。无怪乎有人戏称婚姻是爱情...
向患者询问有关他们在12个类别中与各自的卫生保健专业人员在一起的时间的问题(守时,准备就绪,对问题的理解,言语清晰,倾听,尊重,解释,让您畅所欲言,放心,情感支持,建议和下一次随访的建议)。 患者使用从...
对PhotoFun有任何建议、想法、评论或发现了bug,请加入PhotoFun交流论坛畅所欲言。 分享精神: 如果您喜欢PhotoFun,请将它介绍给自己的朋友,或者帮助他人安装一个PhotoFun,又或者写一篇赞扬我们的文章。
自己写的一个比较简单的音频字幕插件,有不好的地方请畅所欲言(毕竟水平有限,见谅)
看见大家在这里畅所欲言,有高手也有新入门的ddmm,我也来谈谈学VC的一点“捷径”吧,这条“捷径”纯粹走的是C/C++的路子,不考虑学习其他语言。(我只会C/C++,略懂VB和Java,所以对于通过其他语言来切入VC的没有...
个人博客是人们在网络上展现自己个性的一种方式。自从互联网走进千家万户,大受人们喜爱。大家都喜欢通过网络来获取各种各样的信息。而在网络上,你也可以畅所欲言,而个人博客也是其中一种。在个人博客上,你可以...
2、网络的隐蔽性导致青少年不道德行为增多 在网上,人们根本看不到对方,不必与他人面对面地打交道,是以 种看不见摸不着的方式在进行交流,所以,人们可以畅所欲言,对有交友障碍、不善言 辞、长相有缺憾的人可以...
4. 电影评论管理:让广大电影爱好者能够说出自己内心想要表达的语言,对对应的电影进行畅所欲言; 5. 电影爱好者社区管理:此模块是对评论功能的一个扩展,让广大电影爱好者能够更广泛的表达自己的内心,畅谈自己的...
这款应用的主要特点是匿名性,用户可以在不透露自己身份的情况下,发表言论、参与讨论,这对于想要畅所欲言但又担心个人隐私泄露的用户来说,是一个很好的选择。此外,这款应用还具有丰富的社交功能,如私信、关注、...