Main10.java 770 B

123456789101112131415161718192021222324252627282930313233343536
  1. package com.sf;
  2. public class Main10 {
  3. static void sayHello(Human human) {
  4. System.out.println("sayHello Human");
  5. }
  6. static void sayHello(Man man) {
  7. System.out.println("sayHello Man");
  8. }
  9. static void sayHello(Woman woman) {
  10. System.out.println("sayHello Woman");
  11. }
  12. public static void main(String[] args) {
  13. // 编译时类型 运行时类型
  14. Human man = new Man();
  15. Human woman = new Woman();
  16. sayHello(man);
  17. sayHello(woman);
  18. // 对重载方法的选择 是根据编译时类型(静态类型)来确定的 而不是根据运行时类型
  19. // A Human Human
  20. // B Man Woman
  21. }
  22. }
  23. class Human {
  24. }
  25. class Man extends Human {
  26. }
  27. class Woman extends Human {
  28. }