我刚开始使用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( );
我的输出是:
这是对的吗?
上一个问题: