程序员必会之java关键字中super、super()用法
上篇文章说过this用法,需要了解的可以去看看。 this用法文章链接
super只能在类中的非静态中使用,即有static出现的地方都不能出现。
super
指代父类的对象。
- 引用父类的成员属性或者方法。(非private修饰的)。
/**
* 动物类
*/
public class Animal {
private String action;
String name;
protected int age;
public String adress;
private void test1() {}
void test2() {}
protected void test3() {}
public void test4() {}
}
/**
* 猫类
*/
public class Cat extends Animal {
public void test () {
System.out.println(super.name);
super.test2();
}
}
- 当子类的成员变量或者方法与父类名称相同时,用super区分是父类的。
/**
* 动物类
*/
public class Animal {
public String name = "动物类";
public void test() {
System.out.println("父类方法test()");
}
}
/**
* 猫类
*/
public class Cat extends Animal {
private String name = "猫类";
@Override
public void test() {
System.out.println(this.name);
System.out.println(super.name);
super.test();
System.out.println("子类方法test()");
}
public static void main(String[] args) {
new Cat().test();
// 猫类
// 动物类
// 父类方法test()
// 子类方法test()
}
}
super()
指代父类的构造函数。
- super()必须放在构造函数里,且与this()不能同时存在。
- super()在构造函数里必须放在第一行,且只能存在一个。
感谢求关注[送心]