1.子类方法覆盖父类方法时,如果子类对象想调用父类被子类覆盖的方法,则用super
class Animal{
public void eat() {
System.out.println("我是Animal");
}
}
class Cat extends Animal{
public void eat() {
super.eat();
}
}
public class super_ {
public static void main(String[] args) {
// TODO Auto-generated method stub
Cat cat= new Cat();
cat.eat();
}
}
2.在创建子类对象时执行顺序是:先进入子类构造函数,然后在构造器中会先调用父类构造器(创建父类对象),再执行类构造器代码super();注:super必须在构造器第一句。
class Animal{ public Animal() { System.out.println("我是Animal"); } } class Cat extends Animal{ public Cat() {
// 有一个隐藏的super()构造器,调用父类的构造器 } } public class super_ { public static void main(String[] args) { // TODO Auto-generated method stub Cat cat= new Cat(); } }
3.如果父类没有提供无参数的构造器,此时子类必须通过super()语句去调用父类参数构造器。