为了账号安全,请及时绑定邮箱和手机立即绑定

为什么输出结果和老师的不一样?

为什么输出结果和老师的不一样?

兰染 2016-04-14 23:17:16
------------------------------------------------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
// 结果就显示是不同对象了


查看完整回答
反对 回复 2016-04-14
?
可爱的龟龟

TA贡献18条经验 获得超5个赞

if (this.age != other.age)

查看完整回答
反对 回复 2016-04-14
  • 2 回答
  • 0 关注
  • 1454 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信