ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Java 面向对象进阶 08 继承中构造方法的访问特点、this和super关键字使用总结(黑马)

Java 面向对象进阶 08 继承中构造方法的访问特点、this和super关键字使用总结(黑马)

一、继承中构造方法的访问特点

案例展示:

运行结果:

如果想给成员变量赋值:(通过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;}@Overridepublic 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);}@Overridepublic void work(){System.out.println("厨师在炒菜");}}

代码运行结果:

练习2:

返回列表