本帖最后由 ぺsimon☆ 于 2013-4-25 19:43 编辑
- class Person
- {
- private String name;
- private int age;
- Person(String name,int age)
- {
- this.name=name; //把name赋值给对象的name
- this.age=age; //把age赋值给对象的age
- }
-
- public boolean equals(Object obj)
- {
- if(!(obj instanceof Person))//判断obj是否为Person的子类
- return false;
-
- Person p=(Person)obj;//把obj强转为Person类型
-
- return this.name.equals(p.name)&&this.age==p.age;
- }
复制代码 问题:public boolean equals(Object obj)
{
if(!(obj instanceof Person))//判断obj是否为Person的子类
return false;
Person p=(Person)obj;//把obj强转为Person类型
看不懂上面几句代码是怎样运行的?
我的理解是这样的:判断obj是否为Person的子类,如果不是子类就,返回false,
但是程序里没有写当判断语句为假的时候把obj强转为person类,但是为什么程序会自动执行下面的代码呢?
我把代码改成:
public boolean equals(Object obj)
{
if(obj instanceof Person)//判断obj是否为Person的子类
Person p=(Person)obj;//把obj强转为Person类型
}
程序又报错,为什么呢?
|