一:含义
继承比如子类继承自父类,子类具有父类的某些特征,也可以具有自身的特殊属性(即方法重写)。类的继承指在一个现有类(父类)的基础上去构建一个新的类(子类),新的类会自动拥有父类的属性和方法(get set方法)。
格式为:
class 子类 extends 父类{
}
二:代码实现
1、有员工类(父类),普通员工类(员工类的子类)和部门经理类(员工类的子类)普通员工工资=单日工资*天数等级;
部门经理工资=1000+单日工资*天数*等级。
2、员工类的属性和方法:单日工资、工作天数、等级:打印工资方法3、子类重写打印工资方法
4、写测试类,输出各类的工资(同时代码验证重写的规则)
案例实现:
父类Woker:
package gongzi;
public class Woker {
private int Onedaymoney;
private int workday;
private int grade;
public int getOnedaymoney() {
return Onedaymoney;
}
public void setOnedaymoney(int onedaymoney) {
Onedaymoney = onedaymoney;
}
public int getWorkday() {
return workday;
}
public void setWorkday(int workday) {
this.workday = workday;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public void dayinway(){
System.out.println("打印方式为");
}
}
子类一:
package gongzi;
public class ManageWoker extends Woker{
@Override
public void dayinway(){
System.out.println("部门经理工资=1000+(单日工资*天数*等级)"+",工资为:"+this.getOnedaymoney()*this.getWorkday()*this.getGrade()+ "+1000");
}
}
子类二:
package gongzi;
public class Simplewoker extends Woker{
@Override
public void dayinway(){
System.out.println("普通员工工资=单日工资*天数*等级"+",工资为:"+this.getOnedaymoney()*this.getWorkday()*this.getGrade());
}
}
Test:
package gongzi;
public class Test1 {
public static void main(String[] args) {
Simplewoker sw = new Simplewoker();
sw.setOnedaymoney(200);
sw.setWorkday(30);
sw.setGrade(2); //sw去继承父类
sw.dayinway();
ManageWoker mw = new ManageWoker();
mw.setOnedaymoney(300);
mw.setWorkday(30);
mw.setGrade(3); //mw去继承父类
mw.dayinway();
}
}
运行结果:
三:super父类和static关键字
①:使用super来调用父类中的指定操作,super可以用于访问父类中定义的属性,要注意super调用的父类构造方法的代码必须位于子类构造方法的第一行,并且只能出现一次,否则编译会报错。
②:静态变量static实际上是一个共享的全局变量,
例如:private static String school; // 大家都是一个学校的
student.setschool = "希望小学"; // 后面所有的学生2 3 4....的值全部都会统一更改
当类被加载时,静态代码块会被执行,由于类只加载一次,所以static也会被加载一次。