断言p.name(" String")。equals(" Child String")

时间:2016-05-24 06:46:01

标签: java

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");
  }
}

有没有办法取代' [???]'在上面的代码中,断言返回trues?

1 个答案:

答案 0 :(得分:0)

我不明白为什么方法name被重载了。但您可以使用instanceof来检查参数b的类型。

public String name(Object b) {
  if (b instanceof String) {
    return name((String) b);
  }
  return "something else";
}

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