- class Person
- {
- private String name;
- private int age;
- Person(String name,int age)
- {
- this.name = name;
- this.age = age;
- }
- public boolean equals(Object obj)
- {
- if(!(obj instanceof Person))//为什么要判断?
- return false;
- Person p = (Person)obj;
- //System.out.println(this.name+"....."+p.name);
- return this.name.equals(p.name) && this.age == p.age;
- }
复制代码 问题是,为什么要判断instanceof?传进来的对象不是已经被向上转型为object类了吗?instanceof是判断左边的对象是否是右边类的实例,参数传递的时候Object obj = new Person();此类不是变成了Obejct的实例了吗?那instanceof用来干嘛?为什么instanceof Person不会返回false??
|
|