必须满足什么条件才能使两个方法正确地成为重载方法?
是否两个方法的参数列表至少必须不同,例如
public void A() { //... }
public void A(int val) { //.. }
Run Code Online (Sandbox Code Playgroud)
因此,仅改变return类型和/或access修饰符就不会产生两个重载方法吗?
规则远非任意:假设你有
String a() {}
Date a() {}
Run Code Online (Sandbox Code Playgroud)
你会怎么称呼a?让我们来看看:
Object o = a(); // which a() is called?
Run Code Online (Sandbox Code Playgroud)
仅访问修饰符不同的方法甚至更没有意义:它们将是同一方法的两个副本,但具有不同的行为。
因此,实际规则将方法签名定义为由每个调用站点固定的部分组成:名称和参数类型。一个类不能有两个具有相同签名的方法。
| 归档时间: |
|
| 查看次数: |
3051 次 |
| 最近记录: |