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的世界中,空接口可以算是最高的层像。
相关文章
Java请求Http接口OkHttp超详细讲解(附带工具类)
这篇文章主要给大家介绍了关于Java请求Http接口OkHttp超详细讲解的相关资料,OkHttp是一款优秀的HTTP客户端框架,文中通过代码示例介绍的非常详细,需要的朋友可以参考下2024-02-02
Java弱键集合WeakHashMap及ConcurrentCache原理详解
这篇文章主要介绍了Java弱键集合WeakHashMap及ConcurrentCache原理详解,基于哈希表的Map接口实现,支持null键和值,但是WeakHashMap具有弱键,可用来实现缓存存储,在进行GC的时候会自动回收键值对,需要的朋友可以参考下2023-09-09


最新评论