我有一個關於繼承的簡單問題。目前,我正在製作一個簡單的程序,重新演示您在僞造Minecraft時修改自定義區塊的過程。基本Java繼承
我有超類Block
:
public class Block {
public String name;
public int id;
public int height = 16;
public Block(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void onRightClick() {
System.out.println("You Right Clicked!");
}
public void setUnlocalizedName(String name) {
this.name = name;
}
}
然後我做了兩個子類。它們是相同的,但這僅僅是一個參考。
package com.andrewfurniss;
public class GrassBlock extends Block {
public GrassBlock(int id) {
super(id);
this.setUnlocalizedName("DirtBlock");
}
}
另一個類叫做DirtBlock
。當我打印出它的名字時,它只打印出我聲明的第二個名字。這是爲什麼?
你可以發佈「當我打印出姓名」的代碼嗎? –
對不起,但我不清楚你在問什麼。 「你是什麼意思,」它只打印出我聲明的第二個名字......「」?我看到你只聲明瞭一次名稱字段。作爲一個方面說明,我會將所有字段設置爲私有的,而不是公共的,並且會考慮創建可以使用id和name的構造函數,然後通過超級構造函數調用來設置該名稱。 –
輸出是什麼?爲什麼這不是意外? – HuStmpHrrr