- 父类的实例调用子类的方法
- 判断实例是否属于某类
- 接口
- 抽象
- super
- 浅拷贝和深拷贝
继承关键词:extends
接口关键词:implements
抽象关键词:abstract
E033
如果员工为人事类,则还需向控制台输出如下格式信息:
“HR的雇员等级为:”+ 人事的职级 + “,” + 人事的薪水补贴信息
if(emp instanceof Hrstaff)
System.out.println("HR的雇员等级为:"+emp.getLevel()+","+((Hrstaff)emp).looupSalary(emp.getLevel()));
父类的实例调用子类的方法
"Hrstaff类"是"Employe类"的子类;
“lookupSalary(int level)” 是"Hrstaff类"的方法函数;
而"emp"是"Employe类"的实例;
可用:
((Hrstaff)emp).looupSalary(emp.getLevel())
判断实例是否属于某类
emp instanceof Hrstaff
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图中用斜体
- 如要继承抽象类,一定要重新定义抽象方法,无论是否要用到。
- 抽象类不能创建对象
- 抽象类的父类可以为具体类
- 具体方法可以被重写成抽象方法
super
一、super关键字作用
1:主要存在于子类方法中,用于指向子类对象中父类对象。
2:访问父类的属性
3:访问父类的函数
4:访问父类的构造函数
二、使用
- 无参构造函数:隐式调用—可写可不写
public Employe() {
super();
}
- 有参构造函数:显示调用
public Hrstaff(String name)
{
super(name,5, 5000);
}
- 调用父类的函数
重写父类方法时用super.方法
子类既有父类方法的功能,又有自己个性化的功能。
public void work() //父类
{
System.out.println(name+"按领导的要求完成任务!");
}
public void work()//子类
{
super.work();
System.out.println(getName()+"平时需要组织员工多参加运动。");
}
浅拷贝和深拷贝
- 浅拷贝:
拷贝指向对象的指针,对象公用一个内存。
- 深拷贝:
复制对象空间和资源,源对象与拷贝对象互相独立。