package com.sf; public class Main10 { static void sayHello(Human human) { System.out.println("sayHello Human"); } static void sayHello(Man man) { System.out.println("sayHello Man"); } static void sayHello(Woman woman) { System.out.println("sayHello Woman"); } public static void main(String[] args) { // 编译时类型 运行时类型 Human man = new Man(); Human woman = new Woman(); sayHello(man); sayHello(woman); // 对重载方法的选择 是根据编译时类型(静态类型)来确定的 而不是根据运行时类型 // A Human Human // B Man Woman } } class Human { } class Man extends Human { } class Woman extends Human { }