一、继承中构造方法的访问特点
案例展示:
运行结果:
如果想给成员变量赋值:(通过super调用了父类的有参构造方法)
打印结果:
二、this、super关键字使用总结
关于this关键字的访问构造方法的解释:
在为成员变量赋默认值的时候使用this(...),并且和super一样,必须在第一行,不然会报错
练习1:
标准javabean类的三个要求:
1、类名见名知意
2、所有成员变量都需要私有
3、构造方法(空参,带全部参数)
4、get/set方法
代码:
test类:
public class test {
public static void main(String[] args) {
manger m = new manger("heima001","张三",5000,9000);
System.out.println(m.getId() + ","+ m.getName()+ ","+ m.getSalary() + ","+ m.getAddSalary());
m.eat();
m.work();
cooker c = new cooker("heima002","李四",4000);
System.out.println(c.getId() + ","+ c.getName()+ ","+ c.getSalary());
c.eat();
c.work();
}
}
Person类:
public class Person {
private String id;
private String name;
private double salary;
public Person() {
}
public Person(String id, String name, double salary) {
this.id = id;
this.name = name;
this.salary = salary;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public void work(){
System.out.println("员工在工作");
}
public void eat(){
System.out.println("员工在吃米饭");
}
}
manger类:
public class manger extends Person {
private double addSalary;
public manger() {
}
public manger(String id, String name, double salary, double addSalary) {
super(id, name, salary);
this.addSalary = addSalary;
}
public double getAddSalary() {
return addSalary;
}
public void setAddSalary(double addSalary) {
this.addSalary = addSalary;
}
@Override
public void work(){
System.out.println("经理在管理他人");
}
}
cooker类:
public class cooker extends Person {
public cooker() {
}
public cooker(String id, String name, double salary) {
super(id, name, salary);
}
@Override
public void work(){
System.out.println("厨师在炒菜");
}
}
代码运行结果: