基本Java继承

时间:2015-06-28 01:42:19

标签: java inheritance

我有一个关于继承的快速问题。目前,我正在创建一个简单的程序,重新演绎您在使用伪造修改Minecraft的过程中制作自定义块的过程。

我有超级班def videoNameExists(vidName): vidName = vidName.encode("utf-8") bugFixVidName = vidName.replace(":", "") search_url ='http://cdn-api.ooyala.com/v2/syndications/49882e719/feed?pcode=1xeGMxOt7GBjZPp2'.format(bugFixVidName) #this URL is altered to protect privacy for this post

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"); } } 。当我打印出名字时,它只打印出我宣布的第二个名字。那是为什么?

2 个答案:

答案 0 :(得分:1)

这是因为您在GrassBlock

中设置了错误的名称
this.setUnlocalizedName("DirtBlock");

可能是复制粘贴错误。

答案 1 :(得分:0)

也许你在做:

public void ToDo(){
    Block b = new GrassBlock(0);
    b = new DirtBlock(1);

   System.out.println(b.getName());
}

?? 我们需要您用来打印的代码然后命名...

我编辑,为什么你在grassblock ctor上写“dirtblock”?也许就是这样。