49.super的使用
子类访问父类成员
- 访问父类方法:例:super.print();
super可以调用父类的非private方法
- 访问父类属性:例:super.name;
super不可以调用父类的private属性
super可以调用父类的非private属性
- 访问父类构造方法:例1:super(); 例2:super(name);
通过super调用父类的构造方法
super();注意参数顺序必须和父类一致
50.super总结
super关键字来访问父类的成员
- 使用super关键字,super代表父类对象
- super只能出现在子类的方法和构造方法中
- super调用构造方法时,只能是第一句
- super不能访问父类的private成员
51.super的使用场景
- 子类方法重写父类方法
- 在子类中定义了和父类同名的成员变量
子类会覆盖父类的同名成员
可使用super调用父类被子类覆盖的同名成员(super可以是被屏蔽的成员可见)
//父类,提取共性代码Pet类
public class Pet {
//1.隐藏属性(添加private)
//昵称,默认值是“无名氏”
private String name="无名氏";
//1.health属性不被用户访问到 2.程序编写过程中要能控制health的赋值--方法中
/*if(this.health<0||this.health>100){
System.out.println("请输入0-100的值!");
this.health=60;
}else{
this.health=health;
}*/
//健康值,默认值是100,健康值在0-100之间,小于60为不健康
private int health=100;
//亲密度
private int love=0;
int age=5;
public Pet(){
System.out.println("父类无参构造方法");
}
public Pet(String name){
this.name=name;
}
public Pet(String name,int health,int love){
//this(name); //this可调用本类的构造方法,且必须在第一行
this.name=name;
this.health=health;
this.l