徐培成老师说,Interface和abstract到底哪里不一样!
在做swing 和awt编程的时候, 如果用Interface 那就累死了。
应该用抽象类,去使用匿名内部类 new 抽象类(){},如果是接口的话就不能使用匿名内部类这种感觉了
这就是适配器模式 adapter模式
配器类
这些空的方法是一种浪费,有时也是一种混乱。除非看过这些空方法的代码,程序员可能会以为这些方法不是空的。即便他知道其中有一些方法是空的,也不一定知道哪些方法是空的,哪些方法不是空的,除非看过这些方法的源代码或是文档。
缺省适配模式可以很好的处理这一情况。可以设计一个抽象的适配器类实现接口,此抽象类要给接口所要求的每一种方法都提供一个空的方法。就像帮助了鲁智深的“上应天星”一样,此抽象类可以使它的具体子类免于被迫实现空的方法。
public interface 和尚 {
public void 吃斋();
public void 念经();
public void 打坐();
public void 撞钟();
public void 习武();
public String getName();
}
public class 鲁智深 implements 和尚{
public void 习武(){
拳打镇关西;
大闹五台山;
大闹桃花村;
火烧瓦官寺;
倒拔垂杨柳;
}
public String getName(){
return "鲁智深";
}
}
由于鲁智深只实现了getName()和习武()方法,而没有实现任何其他的方法。因此,它根本就通不过Java语言编译器。
众僧说:“此人形容丑恶、相貌凶顽,不可剃度他",但是长老却说:”此人上应天星、心地刚直。虽然时下凶顽,命中驳杂,久后却得清净。证果非凡,汝等皆不及他。”
原来如此!看来只要这里也应上一个天星的话,问题就解决了!使用面向对象的语言来说,“应”者,实现也;“天星”者,抽象类也。
public abstract class 天星 implements 和尚 {
public void 吃斋(){}
public void 念经(){}
public void 打坐(){}
public void 撞钟(){}
public void 习武(){}
public String getName(){
return null;
}
}
public class 鲁智深 extends 和尚{
public void 习武(){
拳打镇关西;
大闹五台山;
大闹桃花村;
火烧瓦官寺;
倒拔垂杨柳;
}
public String getName(){
return "鲁智深";
}
}
相关推荐
IT十八掌徐培成HADOOP笔记
十八掌徐培成 storm 入门到精通视频讲解,总共5天,20个视频
本人也是大数据开发者,就是一路上从JAVA提升到大数据,这教程就是按这流程一步步深入学习,适合自学大数据的同学哈
【IT十八掌徐培成】Java基础第25天-01.反射基础.zip
【IT十八掌徐培成】Java基础第17天-01.GUI编程.zip
【IT十八掌徐培成】Hadoop第01天-05.hadoop伪分布式2.zip
【IT十八掌徐培成】Java基础第17天-04.多线程复制-1avi.zip
【IT十八掌徐培成】Java基础第09天-004.多线程-状态机变换.zip
【IT十八掌徐培成】Java基础第25天-06.JVM结构1.zip
【IT十八掌徐培成】Hadoop第02天-01.Hadoop基础回顾-进程初识-webui.zip
【IT十八掌徐培成】Java基础第03天-06.二维数组-三维数组-循环遍历.zip
【IT十八掌徐培成】Java基础第02天-01.java关键字.zip
资源名称:徐培成Struts2视频教程(18集)资源目录:【】Struts2(徐培成)1-3【】Struts2(徐培成)10-12【】Struts2(徐培成)13-15【】Struts2(徐培成)16-18【】Struts2(徐培成)4-6【】Struts2(徐培成)7-9【】徐培成...
【IT十八掌徐培成】Java基础第22天-04.JDBC基础.zip
精心规划,课程涵盖Hadoop大数据生态圈全方位剖析,做到知识无死角,挑战高薪大数据职位; 循序渐进,由浅入深学习大数据技能,大数据处理技术方方面面一览无余,积跬步以至千里。 企业案例,理论与实际相结合,技术...
【IT十八掌徐培成】Java基础第15天-01.File操作-递归访问文件夹.zip
【IT十八掌徐培成】Java基础第08天-01.多线程-yield.zip
【IT十八掌徐培成】作业.zip
【IT十八掌徐培成】Hadoop第05天-03.数据完成性-校验和.zip