Java 断言p.name(“字符串”).equals(“子字符串”)

Java 断言p.name(“字符串”).equals(“子字符串”),java,Java,有没有办法替换上面代码中的“[??]”以使断言返回true?我不明白为什么方法名称重载。但是您可以使用instanceof检查参数b的类型 interface Parent { public String name(Object b); } class Child implements Parent { public String name(Object b) { return [???]; } public String name(String b) { re

有没有办法替换上面代码中的“[??]”以使断言返回true?

我不明白为什么方法
名称
重载。但是您可以使用
instanceof
检查参数
b
的类型

interface Parent {
  public String name(Object b);
}

class Child implements Parent {
  public String name(Object b) {
    return [???];
  }
  public String name(String b) {
    return "Child " + [???];
  }
}

public class Exercise {
  public static void main(String[] args) {
    Parent p = new Child();
    assert p.name("String").equals("Child String");
  }
}

为什么
publicstringname(objectb)
甚至存在?首先,您应该确定
main
方法调用了哪个
name
方法。然后必须确保此方法返回“子字符串”。
public String name(Object b) {
  if (b instanceof String) {
    return name((String) b);
  }
  return "something else";
}

public String name(String b) {
  return "Child " + b;
}