继承关键词:extends
接口关键词:implements
抽象关键词:abstract
- 父类的实例调用子类的方法
- 判断实例是否属于某类
- 重写父类方法
E033
如果员工为人事类,则还需向控制台输出如下格式信息:
“HR的雇员等级为:”+ 人事的职级 + “,” + 人事的薪水补贴信息
public void appraisals(Employe emp) {
emp.work();
if(emp instanceof Hrstaff)
System.out.println("HR的雇员等级为:"+emp.getLevel()+","+((Hrstaff)emp).lookupSalary(emp.getLevel()));
}
父类的实例调用子类的方法
"Hrstaff类"是"Employe类"的子类;
“lookupSalary(int level)” 是"Hrstaff类"的方法函数;
而"emp"是"Employe类"的实例;
可用:
((Hrstaff)emp).lookupSalary(emp.getLevel())
判断实例是否属于某类
emp instanceof Hrstaff
重写父类方法
在Hrstaff类中重写work方法:
1)该方法需具有Employe类(父类)同名方法的处理能力;
2)还需向控制台输出信息:雇员名字 + " 平时需要组织员工多参加运动。"。
3)本方法使Hrstaff既具有Employe工作内容又具有个性化工作内容。
重写父类方法时,既要有父类方法的处理能力
又需要自己的个性化内容
用super.方法
public void work() {
super.work();
System.out.println(getName()+"平时需要组织员工多参加运动。");
}
Interfaces 接口
常表示一种“行为”。
只包含常量和抽象方法。(无构造器)
接口类的实现类,必需要实现接口的所有方法。
public interface SeekJob {
float SEEKER_AVERAGE_SCORE=85.0f;
public String getName() ;
public float getSeekerAverage();
}
什么时候用class或Interfaces
- class:一种强属于关系;水果—苹果
- interfaces:属性/行为;吃
- 在继承关系中如果向继承多个类,只能用interfaces。
因为在Java中基本都是单继承关系。而可以多接口使用。
abstract class 抽象类
- 只要有抽象函数就是抽象类。
- 需要加abstract关键词
- uml图中用斜体
- 如要继承抽象类,一定要重新定义抽象方法,无论是否要用到。
- 抽象类不能创建对象
- 抽象类的父类可以为具体类
- 具体方法可以被重写成抽象方法