java基础知识不会啊,大家来瞅瞅啊

young_ao 2018-03-16 05:05:52

public class MyTypeOf {

public static void main(String[] args) {
Map<String, Object> map = new HashMap<>();
map.put("aa", 123);
aa(map);
}

public static void aa(Map<String,Object> map) {
System.err.println(map.get("aa") instanceof Integer);
System.err.println(map.get("aa") instanceof Object);
}

}

请问这体现了java的什么特性呢?为什么?
...全文
563 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
晨曦遇晓 2018-03-22
  • 打赏
  • 举报
回复
多态 instanceof 表示该对象是否是其后面对象的实例对象或者子类
qq_39124490 2018-03-22
  • 打赏
  • 举报
回复
多态啊 我的哥
大牛大胃牛 2018-03-17
  • 打赏
  • 举报
回复
应该是多态性吧
沁海棠 2018-03-17
  • 打赏
  • 举报
回复
多态 楼上+1
Daisyiko 2018-03-17
  • 打赏
  • 举报
回复
多态
  • 打赏
  • 举报
回复
引用 1 楼 aaa_pikaqiu 的回复:
    public class Test  
    {  
        public static void testInstanceof(Object x)  
        {  
            System.out.println("x instanceof Parent:  "+(x instanceof Parent));  
            System.out.println("x instanceof Child:  "+(x instanceof Child));  
            System.out.println("x getClass Parent:  "+(x.getClass() == Parent.class));  
            System.out.println("x getClass Child:  "+(x.getClass() == Child.class));  
        }  
        public static void main(String[] args) {  
            testInstanceof(new Parent());  
            System.out.println("---------------------------");  
            testInstanceof(new Child());  
        }  
    }  
    class Parent {  
      
    }  
    class Child extends Parent {  
      
    }  
    /* 
    输出: 
    x instanceof Parent:  true 
    x instanceof Child:  false 
    x getClass Parent:  true 
    x getClass Child:  false 
    --------------------------- 
    x instanceof Parent:  true 
    x instanceof Child:  true 
    x getClass Parent:  false 
    x getClass Child:  true 
    */  
从程序输出可以看出,instanceof进行类型检查规则是:你属于该类吗?或者你属于该类的派生类吗?而通过getClass获得类型信息采用==来进行检查是否相等的操作是严格的判断。不会存在继承方面的考虑;
  • 打赏
  • 举报
回复
    public class Test  
    {  
        public static void testInstanceof(Object x)  
        {  
            System.out.println("x instanceof Parent:  "+(x instanceof Parent));  
            System.out.println("x instanceof Child:  "+(x instanceof Child));  
            System.out.println("x getClass Parent:  "+(x.getClass() == Parent.class));  
            System.out.println("x getClass Child:  "+(x.getClass() == Child.class));  
        }  
        public static void main(String[] args) {  
            testInstanceof(new Parent());  
            System.out.println("---------------------------");  
            testInstanceof(new Child());  
        }  
    }  
    class Parent {  
      
    }  
    class Child extends Parent {  
      
    }  
    /* 
    输出: 
    x instanceof Parent:  true 
    x instanceof Child:  false 
    x getClass Parent:  true 
    x getClass Child:  false 
    --------------------------- 
    x instanceof Parent:  true 
    x instanceof Child:  true 
    x getClass Parent:  false 
    x getClass Child:  true 
    */  

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧