继承之子类与超类

继承:经过扩展一个已经存在的类而造成的一个新类,在这个新类中,自动存在父类中的域和方法,而且能够有本身独特的域和方法。ide

1.建立一个类测试

public class Employee {
    
    private String name;
    private double salary;
    private LocalDate hireDate;
    
    public Employee(String name,double salary,int year,int month,int days) {
        this.name=name;
        this.salary=salary;
        hireDate=LocalDate.of(year,month,days);
    }
    
    public String getName() {
        return name;
    }

    public double getSalary() {
        return salary;
    }

    public LocalDate getHireDate() {
        return hireDate;
    }
    
    public void raiseSalary(double byPercent){
        double raise=salary*byPercent/100;
        salary+=raise;
    }


}

2.建立子类this

public class Manager extends Employee{
    
    private double bonus;
    
    public Manager(String name,double salary,int year,int month,int days) {
        super(name,salary,year,month,days);
        bonus=0;
    }

    @Override
    public double getSalary() {
        return super.getSalary()+bonus;
    }

    public double getBonus() {
        return bonus;
    }

    public void setBonus(double bonus) {
        this.bonus = bonus;
    }
}

Note:spa

  • 子类的构造方法:在构造Manager对象时,须要对name,salary等域进行初始化,而这些域都时父类的私有域,只能经过父类的构造器来访问,因此用到了super,用以调用父类的构造器完成初始化。或者在子类中页添加name等域,不建议这样作。
  • getSalary()的重写:父类中方法并不都适用于子类,子类须要重写父类中方法。而且也使用到了super来调用父类中的方法。

测试:code

public class TestSubClass {

    public static void main(String[] args) {
        
        Manager manager=new Manager("liuchen",5000.0,2018,6,25);
        manager.setBonus(2000.0);
        Employee[] e=new Employee[3];
        e[0]=manager;    //引用的Manager对象 
        e[1]=new Employee("zhangsan",2000.0,2018,5,25);
        e[2]=new Employee("lisi",2000.0,2018,5,27);
        
        for(Employee em:e) {
            System.out.print(em.getName()+"-->"+em.getSalary()+"-->"+em.getHireDate());
        }
    }
}

 运行结果:对象

liuchen-->7000.0-->2018-06-25
zhangsan-->2000.0-->2018-05-25
lisi-->2000.0-->2018-05-27blog

能够看到,子类对象正确的调用了getSalary(),由于e[0]引用的是Manager对象。继承

相关文章
相关标签/搜索