java 父类对象 和 子类对象 的类型转换
Posted billxxx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 父类对象 和 子类对象 的类型转换相关的知识,希望对你有一定的参考价值。
/**
* 父类对象 和 子类对象 的类型转换
*/
public class TypeCast{
public static void main(String[] args){
Employee[] staff = new Employee[3];
staff[0] = new Employee();
System.out.println(staff[0]);
System.out.println(staff[1]);
//Manager boss0 = staff[0]; //java.lang.Error: Unresolved compilation problems:
//Type mismatch:cannot convert from Employee to Manager
//Manager boss0 = (Manager)staff[0]; //ClassCastException: Employee cannot be cast to Manager
Manager boss0 = (Manager)staff[1]; //staff[1] is null, can give to boss0
System.out.println(boss0);
Manager boss = new Manager();
System.out.println(boss);
staff[0] = boss; // subclass object assign to reference
System.out.println(staff[0]);
}
}
class Employee{
private String name;
public Employee(){
this("emplyee");
}
public Employee(String name){
this.name = name;
}
public String toString(){
return name;
}
}
class Manager extends Employee{
private int bonus;
public Manager(){
super("manager");
bonus = 1;
}
public String toString(){
return super.toString() + " " + bonus;
}
}
以上是关于java 父类对象 和 子类对象 的类型转换的主要内容,如果未能解决你的问题,请参考以下文章