一个对象变量可以指示多种实际类型的现象称为多态;在运行过程中能够自动选择调用哪个方法的现象称为动态绑定。
-
基本概念
继承层次:由一个公共超类派生出来的所有的类的集合称为继承层次;
继承链:从某个特定子类出发到其祖先的路径称为继承链。
-
对象变量是多态的
置换法则:一个父类变量可以引用子类对象;
例如:
Manager boss = new Manager("Carl Cracker", 80000, 1987, 12, 15);
Employee[] staff = new Employee[3];
staff[0] = boss; //多态
staff[1] = new Employee("Harry Hacker", 50000, 1989, 10, 1);
staff[2] = new Employee("Tommy Tester", 40000, 1990, 3, 15);
此时编译器将staff[0]看作Employee,若调用Manager方法,则会报错,如下:
staff[0].setBonus(5000); //error
-
对象引用
超类变量可以引用子类对象;
子类变量不能引用超类对象,因为子类方法可能多于超类,若对超类调用了子类才有的方法,必然不合理;
超类数组引用子类数组,而不需要强制转换;
网友评论