Java的多态性

来源:互联网 发布:菜鸟网络到底做什么 编辑:程序博客网 时间:2024/06/02 06:48

 在Java程序设计中,对象变量是多态的。一个超类变量既可以引用超类对象,也可以引用一个该超类的任何一个子类的对象。反之,不能将一个超类的引用赋予子类变量;

例如:Employee是超类,Manager类则是继承自Employee类的子类;

Manager boss = new Manager(.....);

Employee[] staff = new Employee[3];

staff[0] = boss;  //staff[0]与boss引用同一个对象。但staff[0]只能访问Employee类的成员方法,不能访问Manager类特有的成员方法;

Manager m = staff[0];  // ERROR 

Manager ma = (Manager) staff[0]; // SUCCESS 但一般不建议这样直接转换,

应与instanceof运算符组合使用:

if( staff[0] instanceof Manager)

{

Manager ma = (Manager) staff[0];

}

0 0