super关键字的使用
1.super理解为 父类的
2.super可以用来调用属性,方法,构造器
3.super的使用,调用属性和方法
3.1 我们可以在子类的方法或者构造器中使用,“this.super.属性”或者“super.方法”
显示调用父类中的属性或者方法,但是通常情况下,我们会省略super
3.2 特殊情况,如果说子父类定义了同名的属性时,我们要想在子类中调用父类的属性,必须
使用super.属性,来调用。
3.3特殊情况:子类重写父类的方法后,如果需要调用父类的方法时需要使用 super.方法名
4.super的使用,调用构造器
4.1 我们可以在子类的构造器中使用“super(形参列表)”的方式,调用父类中声明的指定的构造器
4.2 “super(形参列表)”的使用,必须声明在子类构造器的首行
4.3 我们在类的构造器中,针对于“this(形参列表)”或者“super(形参列表)”只能二选一,不能同时出啊先
4.4 在构造器的首行,没有使用“this(无形参列表)”或者“super(无形参列表)”,那么默认为父类中的空参构造器
4.5在类的多个构造器中,至少有一个类的构造器中使用了"super(无参列表)",调用父类中的构造器
首先创建一个Person类,其中定义它的属性,构造器,方法
package JavaBasic.OOP.Super;
public class person {
String name;
int age;
int id;
public person(){
}
public person(String name){
this.name = name ;
}
public person(String name, int age ){
this.age = age;
this.name = name;
}
public void eat(){
System.out.println("人吃饭");
}
public void walk(){
System.out.println("人走路");
}
}
然后再创建一个Student类 extends Person类,继承父类的属性和方法,并且定义自己的属性和方法
package JavaBasic.OOP.Super;
public class student extends person {
String major;
int id;
public student(){
}
public student(String major){
this.major = major;
}
public student(String name,int age,String major){
// super.age = age;
//调用父类中的构造器,super(形参列表),放在最开头的地方
super(name,age);
this.major = major;
}
public void eat(){
System.out.println("学生吃,有营养的食物");
}
public void study(){
System.out.println("学生,学习为主");
}
public void show(){
System.out.println("name" + this.name + "age" + super.age);
System.out.println("id = " + this.id);
System.out.println("id = " + super.id);
}
}