多态
一.相关定义
1-1 多态
多态是同一个行为具有多个不同表现形式或形态的能力。同一个形参类型为基类的接口,使用不同的子类的实例可以执行不同操作。
1-2 绑定
- 绑定:将一个方法调用和一个方法体关联起来被称作绑定;
- 前期绑定:若在程序执行前进行绑定(如果有的话,由编译器和连接程序实现);
- 后期绑定:在运行时根据对象的类型绑定,也叫做动态绑定或运行时绑定。
后期绑定的实现通常是在对象中安置某种“类型信息”,以便方法调用机制能知道对象是哪种类型,从而找到对应的方法体加以调用。
Java中除了static方法和final方法(private方法也属于final方法)之外,其他所有方法都是后期绑定。
1-3 总是调用最派生的方法
Java在使用基类引用调用方法时,总是调用最派生的方法。选取最派生方法的范围是:基类中的方法和基类引用指向的对象所在类中覆写的同名方法。即,如果基类引用所指向对象所在的类中未覆写基类中的方法,那么通过基类引用调用的将会是基类中的方法,否则调用的就是基类引用所指向对象所在类中覆写的方法。
package com.hutao.test.page155;
import static com.hutao.util.Print.print;
class BaseClass {
public void method1(){
print("Base class"s method1 call method2");
method2();
}
public void method2(){
print("Base class"s method2 was called");
}
}
class DerivedClass extends BaseClass{
@Override
public void method2() {
print("Derived class"s method2 was called");
}
}
public class Test{
public static void main(String[] args) {
BaseClass baseClass = new DerivedClass();
//使用基类引用调用方法
baseClass.method1();
}
}


