关于equals方法
视频中,Dog other=(Dog)obj;当执行到这句话时,显然这两个对象的类型是相同的。那么我就可以把传进来的对象转化成Dog类型,是什么意思?前半句话不是说了两个类型是相同的么,怎么又要把传进来的对象转化成Dog类型呢?
视频中,Dog other=(Dog)obj;当执行到这句话时,显然这两个对象的类型是相同的。那么我就可以把传进来的对象转化成Dog类型,是什么意思?前半句话不是说了两个类型是相同的么,怎么又要把传进来的对象转化成Dog类型呢?
2015-12-12
并没有看到前面的代码,所以最好是贴下代码。。
然后我试着回答一下吧,不知道能不能解决你的疑问。
关于类型转换,有如下规则:
1、子类型可以转父类型
2、父类型不一定能转子类型
比如,人类就是父类型,男人是人类的子类,女人也是人类的子类,所以不管是男人还是女人,都是人类(子类型转父类型)
但是人类不一定是男人,还有可能是女人(父类型不一定能转子类型)。。
概括来说就是:男人一定是人,但人不一定是男人。
如果你能确定某个人是男人,那么就可以进行转型了。
以你的例子来说,狗是动物,但是动物不一定是狗(还有可能是猫、大象、蛇等等等等)
如果你确定这个obj确实是狗,那么你就可以用下面的代码来转型:
Dog other=(Dog)obj;
如果这个obj不是 Dog 类型的话,会报异常的。
举报