多态

一.相关定义

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();
    }
}
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 多态