【问题标题】:How can I call a subclass method using a superclass object?如何使用超类对象调用子类方法?
【发布时间】:2016-01-15 20:31:25
【问题描述】:

我的代码有问题,我需要使用超类对象调用子类方法。有没有可能的方法来做到这一点或解决方法?我完全被难住了,我的问题没有任何有用的答案。

    String basicCommand = commands[0];
    String advCommand = commands[1];
    String perCommand = commands[2];
    if (objectName.get(advCommand)instanceof Circle){
        objectName.get(advCommand);
        //.changeSize(reader.convertToInt(perCommand));

advcommandShape 类型,它是Circle 类的超类,方法changesize()Circle 内。

*数据在哈希图中。

【问题讨论】:

标签: java inheritance subclass superclass


【解决方案1】:

你需要根据类名来实例化它:

  Class cc = Class.forName(advCommand); 
  Circle c = (Circle)c.newInstance();
  c.changeSize(reader.convertToInt(perCommand));

【讨论】:

  • 你这个天才!非常感谢这有效,但是代码有点不同,因为您必须从哈希图中获取对象,我不知道您必须强制转换它,如果可能的话,您能否更详细地解释强制转换以及它究竟做了什么? ` ((Circle) objectName.get(advCommand)).changeSize(reader.convertToInt(perCommand));`
  • 是的,试试这个:howtoprogramwithjava.com/java-cast。将不胜感激 + 正确答案检查!
猜你喜欢
  • 2020-05-03
  • 1970-01-01
  • 2016-01-22
  • 2017-05-13
  • 1970-01-01
  • 2016-12-28
  • 1970-01-01
  • 2018-08-22
  • 1970-01-01
相关资源
最近更新 更多