我想检查输出是否正确。并且,关于这个'getClass()'方法的更多细节

时间:2015-09-13 17:45:02

标签: java inheritance instantiation

我刚开始使用Java,我遇到了这个问题。我不确定我的输出是否正确。我还想在这个上下文中有关'getClass()'方法的更多细节,因为'Orc'和'Unicorn'不会从同一个类继承。

 abstract class Creature {
        public abstract void makeNoise( );
    }

class Monster extends Creature { 
    public void makeNoise( )
    { 
      System.out.println("Raaa!");
    } 
}

class Orc extends Monster { }

abstract class Myth extends Creature { }

class Unicorn extends Myth { 
  public void makeNoise( )
  { 
    System.out.println("Neigh!"); 
  }
}
Unicorn x = new Unicorn( ); 
if (x instanceof Myth) {
   System.out.println("myth");
}
else {
   System.out.println("not myth"); 
}
x.makeNoise( );

Orc y = new Orc( );
if ( x.getClass( ) == y.getClass( ) ) { //I need more explanation on this 'getClass()' method
   System.out.println("yes");
}
else {
   System.out.println("no");
}
y.makeNoise( );

我的输出是:

  • 神话
  • 嘶!
  • 没有
  • RAAA!

这是对的吗?

上一个问题:

  • 子类的对象是父类的实例吗?

0 个答案:

没有答案