Java标识接口的使用方法
投稿:laozhang
在本篇文章中小编给大家分享了关于Java标识接口的使用方法和教程内容,有需要的朋友们学习下。
标识接口是没有任何方法和属性的接口。标识接口不对实现它的类有任何语义上的要求,它仅仅表明实现它的类属于一个特定的类型。
标接口在Java语言中有一些很著名的应用,比如java.io.Serializable和java.rmi.Remote等接口便是标识接口。标识接口,当一个类实现了一个标识接口之后就像是给自己打了个标签。
为此,我们使用了下面三个接口:
一个用来表示万事万物的SomeThing
public interface SomeThing {}人类的接口:
public interface Humans extends SomeThing{}动物的接口:
public interface Animals extends SomeThing{}然后是一系列的实现:
狗:
public class Dog implements Animals {}妖怪(他很聪明,给自己帖上了人的标签):
public class Monster implements Humans {}下面这个程序的核心部分,猎人类及客户端程序:
public class Hunter{
public void fire(Object target)
{
if(target instanceof Humans){
System.out.println("这下完了,打中了");
}else{
System.out.println("恭喜你,打中了一只动物!");
}
}
//智能的枪
public void intelligentFire(Object target)
{
if(target instanceof Humans){
return;
}
System.out.println("开了一枪!"+target.getClass());
//下面进行秒杀等相关处理
//销毁他
target=null;
}
public static void main(String[] args) {
Hunter hunter=new Hunter();
Object[]
objects =new Object[]{new Dog(),new Japanese(),new Japanese(),new Chinese(),new Monster(),new SomeThing(){}};
for(int i=0; i<objects.length; i++){
hunter.intelligentFire(objects[i]);
}
}我就不理你Hunter制订的规则,什么Humans标签,我就是不用。于是放到我们的程序中当然就只有挨打的份了。
由此可见,空接口(标签接口)的重要性,在像本例中,给不给自己帖上标签,这是一个性命莜关的问题。其实在OO的世界中,空接口可以算是最高的层像。
