BlueAndBug
BlueAndBug
采纳率25%
2020-01-01 14:27

为什么输出第一个字符串为NULL?

已采纳

public class Hero{
String name;
String name1;
public void kill(Mortal m) {
m.die();
}
public static void main(String[] args) {
Hero h = new Hero();
h.name="盖伦";
ADHero ad = new ADHero();
ad.name1="提莫";
h.kill(ad);
}

}

public class ADHero extends Hero implements Mortal {

@Override
public void die() {
    System.out.println(name+name1);
}

}

public interface Mortal {
public void die();
}

使用过super关键字调用父类的name,但是还是输出NULL,请大佬帮助解释一下。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • qq_40053460 捉也捉不到 1年前

    简而言之一句话,你没有进行 ad.name的赋值,只进行了ad.name1的赋值,新手吧?
    图片说明

    点赞 2 评论 复制链接分享
  • qsmyhsgwlczrwh qsmyhsgwlczrwh 1年前

    一个对象不应该有两个名字

    class Hero{
        String name;
        private void kill(Mortal m) {
            m.die(name);
        }
        public static void main(String[] args) {
            Hero h = new Hero();
            h.name="盖伦";
            ADHero ad = new ADHero();
            ad.name="提莫";
            h.kill(ad);
        }
    
    }
    class ADHero extends Hero implements Mortal {
    
        @Override
        public void die(String killer) {
            System.out.println(killer+"击杀了"+name);
        }
    }
    interface Mortal {
        void die(String killer);
    }
    
    
    点赞 评论 复制链接分享
  • n009ww 两个娃他爹 1年前

    你自己把对象弄混淆了,楼上都是正解

    点赞 评论 复制链接分享
  • weixin_44700117 「已注销」 1年前

    你这个例子挺好的,挺考验基础的。原因楼上的图已经说明了,如果你要是想正确输出的话建议你像下面这样写。

    class Hero{
        static String name;
        static String name1;
        private void kill(Mortal m) {
            m.die();
        }
        public static void main(String[] args) {
            Hero.name="盖伦";
            ADHero.name1="提莫";
            Hero h = new Hero();
            ADHero ad = new ADHero();
            h.kill(ad);
        }
    
    }
    class ADHero extends Hero implements Mortal {
    
        @Override
        public void die() {
            System.out.println(name+name1);
        }
    }
    interface Mortal {
        void die();
    }
    
    点赞 评论 复制链接分享
  • qq_38270796 D狂风R 1年前

    楼上正解,非常清晰,画图确实一目了然

    点赞 评论 复制链接分享