【java面型对象进阶】------继承实例
继承结构下的标准Javabean
代码如下:
package demo10;
//定义员工父类
public class Employee {
private String id;
private String name;
private double salary;
//构造方法
public Employee(){
}
public Employee(String id,String name,double salary){
this.id=id;
this.name=name;
this.salary=salary;
}
//get和set方法
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("吃米饭");
}
}
package demo10;
//经理子类 继承 员工父类
public class Manager extends Employee{
//成员变量
private double bonus;
//构造方法
public Manager(){
//super(); //默认存在
}
//带全部参数的构造
//父类 + 子类 所有的成员变量
public Manager(String id, String name, double salary, double bonus) {
//将共性传递给父类进行赋值
super(id, name, salary);
this.bonus = bonus;
}
//get和set方法
//由于父类中已经存在了id,name,salary对应的get和set方法
//可以直接通过对象来调用
//所以这里就不需要再写一遍了
public double getBonus() {
return bonus;
}
public void setBonus(double bonus) {
this.bonus = bonus;
}
//重写父类的work方法
@Override
public void work()
{
System.out.println("经理管理其他人");
}
}
package demo10;
//厨师子类 继承 员工父类
public class cook extends Employee{
//不需要写额外成员变量了
//cook 需要的成员变量 已经抽取到父类中了
//构造方法
public cook() {
//默认存在
//super();
}
//父类 + 子类 所有的成员变量
public cook(String id, String name, double salary) {
//将共性传递给父类进行赋值
super(id, name, salary);
}
//get和set方法
//由于父类中已经存在了id,name,salary对应的get和set方法
//可以直接通过对象来调用
//所以这里就不需要再写一遍了
//重写父类的work方法
@Override
public void work(){
System.out.println("炒菜");
}
}
package demo10;
public class test {
public static void main(String[] args) {
//全参构造创建经理对象并进行调用
Manager m = new Manager("007","张三",15000,5000);
//子类继承了父类的get和set方法,所以可以直接调用
System.out.println(m.getId()+","+m.getName()+","+m.getSalary()+","+m.getBonus());
//调用方法
m.work();//父类中被重写的方法
m.eat();//继承自父类的方法
System.out.println("-----------------");
//空参构创建厨师对象并进行调用
cook c=new cook();
//通过set方法进行赋值
c.setId("008");
c.setName("李四");
c.setSalary(10000);
//子类继承了父类的get和set方法,所以可以直接调用
System.out.println(c.getId()+","+c.getName()+","+c.getSalary());
//调用方法
c.work();
c.eat();
}
}