java吧 关注:1,246,041贴子:12,721,668
  • 3回复贴,共1
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
/////上面这个是String类的equals方法的重写,第二个if先判断anObject是不是String的子类,但是下面 String anotherString = (String)anObject;这句话难道不是子类向父类强转吗?求大佬解惑


IP属地:广东1楼2023-08-25 17:13回复
    不是,这是父类向子类强转。上面那句是判断Object这个对象是不是符合String这个类


    IP属地:北京来自Android客户端2楼2023-08-25 18:24
    收起回复
      A incetanceof B,只要A是B类,或者A是B的子类,孙子类都会返回true。就算使用了这种用法:Father a = new Son(); 在JAVA中,依然认为a是Son类,只是a调用的方法以Father类的方式来调用。因为a在初始化的时候是用Son的构造方法,所以对a可以向下转型。


      IP属地:贵州来自Android客户端3楼2023-08-25 19:43
      回复

        扫二维码下载贴吧客户端

        下载贴吧APP
        看高清直播、视频!