通过super关键字访问父类的属性和方法;
一、super关键字介绍
1、在Java类中使用super
来引用父类的成分;
2、super
可用于访问父类中定义的属性;
3、super
可用于调用父类中定义的成员方法;
4、super
可用于在子类构造器中调用父类的构造器;
-
在子类的构造器中可使用语句
super(argument_list)
调用父类的构造器; -
如果子类的构造器中没有显式地调用父类构造器,则系统默认调用父类无参数的构造器;
-
如果子类构造器中既未显式调用父类构造器,而父类中又没有无参的构造器,则编译出错;
二、编程实战
代码的详细解读,可以参考视频教程
父类:Person.java
/**
* User: 祁大聪
*/
public class Person { //alt + enter
public String name;
public Integer age;
private Integer money;
public Person(){
this("sanNi",22);//调用其他的构造器
}
public Person(String name, Integer age){
this.name = name;
this.age = age;
}
public void printNameAndAge(){
System.out.println("name = " + name + " , age = " + age);
}
public void dance(){
System.out.println("我会跳舞");
}
public void sing(String song){
System.out.println("我会唱歌");
}
private void getMoney(){
System.out.println("取现金");
}
}
子类:Girl.java
/**
* User: 祁大聪
*/
public class Girl extends Person {
@Override
public void dance() {
System.out.println("女孩子喜欢跳民族舞");
}
public void myDance(){
super.printNameAndAge();//调用父类的函数
dance();
}
// public Girl(String name, Integer age){
// super(name, age); //调用父类的构造器
// }
public static void main(String[] args) {
Girl g = new Girl();
g.name = "三妮";
g.age = 22;
g.myDance();
}
}