“你好,阿米戈!我会给你介绍方法重载。”
“你还可以重载它们?!天哪!”
“你可以用它做很多事情,但我们不会立即应用它。”
“一言为定。”
“重载是一个非常简单的操作。事实上,它不是方法操作,虽然有时候它会和一个令人恐怖的名字参数多态联系在一起。”
你最需要记住的一件事就是,每个类都必须有一个唯一的名称。
“是的,我知道。”
“然而,那也不全对。我是说,那根本不对。一个方法并不一定要有一个唯一的名称。必须保持唯一的是方法的名称及其参数类型的集这两者的组合。这个组合也被称为方法签名。”
代码 | 评论 |
---|---|
|
这个可以。这两个方法有唯一的名称。 |
|
这个也可以。这两个方法有唯一的名称(签名)。 |
|
这两个方法名称依然是唯一的。 |
|
这个不可以。这两个方法不唯一,尽管传递的是不同的类型。 |
|
但这个是可以的。方法参数是唯一的。 |
“我在其他地方看到过。”
“是的。当你输入 System.out.println,IntelliJ IDEA 会推荐很多不同版本的 print 方法,它们使用的是不同的参数。编译程序简单识别,然后根据你传递的参数类型调用所需的方法。”
“太难了。但那不是多态。”
“或者更确切地说,那不是方法重写。
顺便说一下,我想指出的是参数名称相互之前不相关。编译过程中会被丢失。一旦方法被编译,我们只可以知道方法的名称和参数类型。
GO TO FULL VERSION