关于java中继承的概念解释以及代码应用
继承,关键字extends,是java中经常用到的东西,实现继承需要几个基本条件:
1.基类,派生类
基类也叫父类,基类中有些方法是派生类中所需要的,就需要派生类继承基类来调用基类中的方法和属性如果有需要的话再添加一部分方法和属性,继承的好处是避免了代码的复用,减少了程序员的工作量,极大的提高了工作效率。
super引用:基类对象引用 调用成员方法或者属性的时候,需要使用到super.
派生类构造函数调用基类构造函数用super();举个栗子创建一个雇员类里面有属性工资,年龄 方法get,set 。经理类添加一个奖金方法,显然经理类需要继承雇员类,而且需要添加一个奖金方法。那先上代码吧
class Employee{
private String name;
private double salary;
private int workAge;
public Employee(String name, double salary, int workAge){
this.name = name;
this.salary = salary;
this.workAge = workAge;
}//构造函数初始化
public void setName(String name) {
this.name = name;
}
public void setSalary(double salary) {
this.salary = salary;
}
public void setWorkAge(int workAge) {
this.workAge = workAge;
}
public String getName() {
return name;
}
public double getSalary() {
return salary;
}
public int getWorkAge() {
return workAge;
}
public double countSalary(){//工资获取判断条件
if(workAge > 12){
return salary;
}else if(workAge > 6 && workAge <= 12){
return salary * 0.9;
}else{
return salary * 0.8;
}
}
}
//继承 每个经理都是一个雇员
class Manager extends Employee{
private double bonous;//添加了奖金属性
public Manager(String name, double salary, int workAge, double bonous){
//显式调用基类的构造函数
super(name, salary, workAge);
this.bonous = bonous;
}
public void setBonous(double bonous) {
this.bonous = bonous;
}
public double getBonous() {
return bonous;
}
protected void setSalary(double salary, double other){
super.setSalary(salary+other);
}
//重写基类中方法返回奖金+工资
public double countSalary(){
return this.bonous + super.countSalary();
}
}
继承中需要注意的几点:
1)当基类中不含无参的构造函数时,派生类必须显式的调用基类中的有参构造函数
2)java中的继承是单继承,不能像接口那样使用
3)派生类并不是基类的一个子集而是比基类含有更多的方法和和属性
告辞!下个文章见!