super关键字
super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。
普通方法:没有顺序限制。可以随便调用
构造函数中:任何类的构造函数中,若是构造函数的第一行代码没有显示调用super();那么java默认都会调用super();作为父类的初始化函数。所以这里super();加不加都无所谓。
super在构造方法里,第一句话总是super(),自己不加,java系统也会自动给你加上;
通过super()调用父类的构造器,父类总是有构造器的
简单理解,只要我有父类(除object之外都会有父类),我就会继承我的父类对象里面的属性、方法我都可以调用,如果没有,父类在往上找父类,直到找到位置!!
package com.pkushutong.TestObject;
public class DemoObject {
String eye;
public void run() {
System.out.println("跑跑!");
}
public void eat() {
System.out.println("吃吃!");
}
public void sleep() {
System.out.println("zzzzz");
}
public DemoObject() {
super();
System.out.println("创建一个动物!");
}
}
class Mammal extends DemoObject {
public void taisheng() {
System.out.println("我是胎生");
}
}
class Bird extends DemoObject {
public void run() {
super.run(); //查找父类的run方法
System.out.println("我是一个小小小小鸟,飞呀飞不高");
}
public void eggSheng() {
System.out.println("卵生");
}
public Bird() {
super(); //super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。
System.out.println("建一个鸟对象");
}
}