class Dad
{
protected static String me = "dad";
public void printMe()
{
System.out.println(me);
}
}
class Son extends Dad
{
protected static String me = "son";
}
public void doIt()
{
new Son().printMe();
}
Run Code Online (Sandbox Code Playgroud)
功能doIt将打印"爸爸".有没有办法让它打印"儿子"?
我希望具有相同的静态变量,具有不同的值,具体取决于类的类型.
所以我会的
public class Entity
{
public static Bitmap sprite;
public void draw(Canvas canvas, int x, int y)
{
canvas.drawBitmap(sprite, x, y, null);
}
}
public class Marine extends Entity
{
}
public class Genestealer extends Entity
{
}
Run Code Online (Sandbox Code Playgroud)
然后在我的主程序中去:
Marine.sprite = // Load sprite for all instances of Marine
Genestealer.sprite = // Load sprite for all instances of Genestealer
Run Code Online (Sandbox Code Playgroud)
我不想在类的每个实例中存储相同的sprite.我希望每种类型都有一个.我想继承静态精灵变量和绘制精灵的绘制函数.但我不希望Genstealer精灵覆盖海洋精灵.
这可能吗?
我该怎么办?
我注意到我可以这样做:
public class Message {
public static final int MIN_BYTES = 5;
}
Run Code Online (Sandbox Code Playgroud)
...并将此类设置为另一个类的父类,并使用另一个值设置相同的常量,例如:
public class Ack extends Message {
public static final int MIN_BYTES = 1;
}
Run Code Online (Sandbox Code Playgroud)
由于编译器没有抱怨,这使我想到了上述问题:
谢谢!