晚上复习JAVA的继承,刚学时觉得很简单,过几天复习发现自己什么都不记得了,可见当时学的时候并没有学到精髓,只是初步的了解。

只有不断的自己去多敲代码,才能正真融汇贯通。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

package com;

public class Animal {
    String name;
    public Animal() {
        
    }
    public Animal(String name) {
        this.name = name;
    }
    public void eat() {
        System.out.println(name + "在吃东西");
    }
    public void sleep() {
        System.out.println(name + "在睡觉");
    }

}
public class Rabbit extends Animal{
    public Rabbit() {
        
    }
    public Rabbit(String name) {
        super(name);
    }
    public void eat() {
        System.out.println(name + "吃草");
    }

}

public class Tiger extends Animal{
    public Tiger() {
        
    }
    public Tiger(String name) {
        super(name);
    }
    public void eat() {
        System.out.println(name + "吃肉");
    }

}

public class TestAnimal {

    public static void main(String[] args) {
        Rabbit r1 = new Rabbit("兔子");
        r1.eat();
        r1.sleep();
        Tiger t1 = new Tiger("老虎");
        t1.eat();
        t1.sleep();
    }

}


打上面这一段代码时,因为不熟练,出现一个错误
  “ public Rabbit() {
        
    }"这一段让我写成了

“ public String name;”

导致最后的结果出现了

“null吃草”

经过自己的思考,应该是自己所写的代码“ public String name;”直接覆盖了父类中的代码,导致于最后结果出错。

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄