1、在对象的内部使用,可以代表父类对象。
a、访问父类的属性
super.age
b、访问父类的方法
super.eat()
public class Animal{
public int age = 10;
public string name;
public void eat(){
System.out.println("动物可以吃东西")
}
}
public class Dog extends Animal{
public int age = 20;
public void eat(){
System.out.println("狗可以吃东西")
}
public void method(){
System.out.println(super.age)
}
}
public class Initail{
public static void main(String【】 args){
Dog dog = new Dog();
dog.method();
}
输出结果:10
2、子类的构造过程中必须调用其父类的构造方法
public class Animal{
public int age;
public string name;
public void eat(){
System.out.println(" 年龄"+age+"动物可以吃东西")
}
public Animal(){ //构造方法
System.out.println("Animal 类执行了")
}
public class Dog extends Animal{
public void eat(){
System.out.println(" 年龄"+age+"狗可以吃东西")
}
public Dog(){
System.out.println("Dog 类执行了")
}
}
public class Initail{
public static void main(String【】 args){
Dog dog = new Dog(); //创建子类对象的时候 自动执行 父类的构造方法
}
结果:Animal 类执行了
Dog 类执行了
3、如果子类的构造方法中没有显示调用父类的构造方法,则 系统默认调用父类无参的构造方法。
如果 显示 的调用构造方法,必须在 子类的构造方法的第一行
public class Dog extends Animal{
public Dog(){
super(); //显示 的调用构造方法,必须在 子类的构造方法的第一行
System.out.println("Dog 类执行了")
}
}
4、如果子类的构造方法中没有显示调用父类的构造方法,父类也没有无参的构造方法,则编译出错