Java中super是什么意思
在Java中,super是一个关键字,用于表示父类的引用。它可以用来访问父类的属性、方法和构造函数。
使用super访问父类属性和方法
1. 访问父类属性
使用super关键字可以访问父类的属性。例如:
``` public class Animal { protected String name; } public class Dog extends Animal { public void printName() { System.out.println(super.name); } } ```在这个例子中,Dog类继承了Animal类,并且重写了Animal类的name属性。在printName方法中,我们使用super关键字来访问父类的name属性。
2. 访问父类方法
使用super关键字可以访问父类的方法。例如:
``` public class Animal { public void eat() { System.out.println("Animal is eating."); } } public class Dog extends Animal { public void eat() { super.eat(); System.out.println("Dog is eating."); } } ```在这个例子中,Dog类继承了Animal类,并且重写了Animal类的eat方法。在Dog类的eat方法中,我们使用super关键字来调用父类的eat方法。
使用super调用父类构造函数
3. 调用父类无参构造函数
使用super关键字可以调用父类的构造函数。例如:
``` public class Animal { public Animal() { System.out.println("Animal is created."); } } public class Dog extends Animal { public Dog() { super(); System.out.println("Dog is created."); } } ```在这个例子中,Dog类继承了Animal类,并且重写了Animal类的构造函数。在Dog类的构造函数中,我们使用super关键字来调用父类的构造函数。
4. 调用父类有参构造函数
使用super关键字可以调用父类的有参构造函数。例如:
``` public class Animal { protected String name; public Animal(String name) { this.name = name; System.out.println("Animal is created."); } } public class Dog extends Animal { public Dog(String name) { super(name); System.out.println("Dog is created."); } } ```在这个例子中,Dog类继承了Animal类,并且重写了Animal类的构造函数。在Dog类的构造函数中,我们使用super关键字来调用父类的有参构造函数。
总结
在Java中,super关键字用于表示父类的引用。它可以用来访问父类的属性、方法和构造函数。使用super关键字可以让子类重写父类的方法,同时保留父类的行为。在使用super关键字时,需要注意父类的访问控制权限和构造函数的参数。
