public class Employee{ //父类
}
public class Hrstaff extends Employee{ //子类
}
子类对象可以声明为父类类型,父类对象不可以声明为子类类型
Employee emp = new Hrstaff(); //正确
Hrstaff hr = new Employee(); //错误
在子类对象声明为父类类型后,可以通过强制转型,转型回来。
Employee emp = new Hrstaff();
Hrstaff emp = (Hrstaff)emp;
因为在子类对象声明为父类类型后,其实对象的真实意义还是子类对象
Employee emp = new Employee();
Employee hr = new Hrstaff();
System.out.println(emp instanceof Hrstaff); //输出false
System.out.println(hr instanceof Hrstaff); //输出true
这里的 instanceof 关键字用于判断一个引用变量所指向的对象是否属于某个类。返回的是true、false。