------------------------------------------------Animal.java-------------------------------------------package com.imooc;public class Animal extends Object { public int age=20; public String name; public void eat(){ System.out.println("年龄"+age+"动物具有吃东西的能力"); } public Animal(){ System.out.println("Animal类执行了"); }}----------------------------------------------Dog.java------------------------------------package com.imooc;public class Dog extends Animal { public int age=20; @Override public boolean equals(Object obj) { if (this == obj)//两个引用的地址是否相同 return true; if (!super.equals(obj))//两个对象是否是空值 return false; if (getClass() != obj.getClass())//类对象,两个对象的类型 return false; Dog other = (Dog) obj; if (age != other.age) return false; return true; }}------------------------------------------------Initail.java---------------------------------------------------package com.imooc;public class Initail { public static void main(String[] args) { // TODO Auto-generated method stub Dog dog = new Dog(); Dog dog1 = new Dog(); if(dog.equals(dog1)){ System.out.println("两个对象是相同的"); }else{ System.out.println("两个对象是不同的"); } }}----------------------------------------------输出结果---------------------------------------------Animal类执行了Animal类执行了两个对象是不同的PS:老师显示是相同的,我是不同的
2 回答
已采纳
guozhchun
TA贡献103条经验 获得超76个赞
if (!super.equals(obj))//两个对象是否是空值 return false; // super.equals(obj) 等同于 // if (this == obj) // return true; // else // return false; // dog和dog1 两个对象的地址不同,也就是this == obj返回false,前面加 '!' 就会使if判断为true然后返回false // 结果就显示是不同对象了
添加回答
举报
0/150
提交
取消