晚上复习JAVA的继承,刚学时觉得很简单,过几天复习发现自己什么都不记得了,可见当时学的时候并没有学到精髓,只是初步的了解。
只有不断的自己去多敲代码,才能正真融汇贯通。
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;”直接覆盖了父类中的代码,导致于最后结果出错。
原文:https://www.cnblogs.com/pkz-hn/p/10672877.html