super
super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。
除了Object类之外其他所有类的构造方法第一句总是super(…)任何类的构造方法中,若是构造方法的第一行代码没有显式的调用super(…);那么Java默认都会调用super(); 所以这里的super(); 加不加都无所谓。
/**
* 测试继承
* @author
*
*/
public class Animal /*extends Object*/ {
String eye;
public void run(){
System.out.println(
"跑跑!");
}
public void eat(){
System.out.println(
"吃吃!");
}
public void sleep(){
System.out.println(
"zzzzz");
}
public Animal(){
super();
System.out.println(
"创建一个动物!");
}
}
class Mammal extends Animal {
public void taisheng(){
System.out.println(
"我是胎生");
}
}
class Bird extends Animal {
public void run(){
super.run();
System.out.println(
"我是一个小小小小鸟,飞呀飞不高");
}
public void eggSheng(){
System.out.println(
"卵生");
}
public Bird(){
super();
System.out.println(
"建一个鸟对象");
}
}
public class Test {
public static void main(String[] args) {
Bird b =
new Bird();
b.run();
}
}
内存分析: