刚刚和大峡讨论一个问题,接口编程,这个话题也许大家比我理解多了,我提出一个自己的观点:在个人程序中空接口很少,至少我见的很少!大峡:不对,空接口很多,接口只不过是一个标识,然后我们做了一个很有意思的程序:
空接口:
package springroad.demo.taginterface;
public interface SomeThing {}
人的接口:
package springroad.demo.taginterface;
public interface Humans extends SomeThing {}
动物接口:
package springroad.demo.taginterface;
public interface Animals extends SomeThing {}
创建一系列对象:
中国人:
package springroad.demo.taginterface;
public class Chinese implements Humans {}
日本人:
package springroad.demo.taginterface;
public class Japanese implements SomeThing {}
狗:
package springroad.demo.taginterface;
public class Dog implements Animals {}
主人:
package springroad.demo.taginterface;
public class Monster implements Humans {}
,下面建立一个猎人类:
package springroad.demo.taginterface;
public class Hunter {
//智能的枪
public void intelligent(Object target)
{
if(target instanceof Animals){
System.out.println("打死了一个动物");
}
else if(target instanceof Humans)
{
System.out.println("这个是人类不能开枪的!");
}else {
System.out.println("打死一个日本人,它竟然连动物都不是,浪费了一颗子弹,唉!");}
//下面进行闪杀等相关处理
//销毁他
target=null;
}
public static void main(String[] args) {
Hunter hunter=new Hunter();
SomeThing[] objects=new SomeThing[]{new Dog(),new Chinese(),new Japanese(),new Monster()};
for(int i=0;i<objects.length;i++)
hunter.intelligent(objects[i]);
}
};
这个程序都是通过一系列的空接口来实现的,不过最后他使用一个内部类,要不new 接口就出错了,程序简单,设计颇见优雅,值得大家学习,最后输出结果是:
打死一个动物!
这个是人类不能开枪的!
打死一个日本人,它竟然连动物都不是,浪费一颗子弹,唉!
这个是人类不能开枪!