我發現資源說方法重載是一種語言根據上下文使用具有不同結果的相同方法的能力。不知何故,當我讀到其他的定義時,我就認爲這不是完整的定義。有更多的方法重載?什麼是方法重載?
Q
什麼是方法重載?
3
A
回答
7
這只是一種非常普遍的描述方式。方法重載允許您使用單個方法名稱,但根據「上下文」(通常是傳入的參數的類型或數量),「重載它」(提供多個版本)。由於每種方法都是分開的,它們可能會導致「不同的結果」。
例如,使用C#,你可以寫:
void Foo() // Version with no arguments
{
}
void Foo(int arg) // Version with a single int
{
}
void Foo(string arg1, double arg2) // Version with string and double parameters
{
}
0
是一些語言的創建方法/函數具有相同的名稱但不同的input
/otput
參數的能力。
一個典型例子是在Java類constructor overloading
例如:
//Constructor without parameters
public User() {
}
//Constructor with only one parameter
public User(String username)
{
this.username = username;
}
//Constructor with two parameters
public User(String username, int age)
{
this.username=username;
this.age=age;
}
你有接受不同的參數,當你看到他們在signature
不同的不同的構造函數的類。
1
這是你擁有衆多使用不同參數的同名方法的地方。
public void kittens(String paws) {
}
public void kittens(String paws, boolean tail) {
}
兩者都可以獨立地被調用,以彼此與任一
kittens("fat");
或
kittens("thin", true);
0
在這種情況下的上下文是由該方法的參數簽名來確定,即數和參數的類型。
例如:
methodName(int x, int y, int w, int h)
methodName(Vector x)
第一種方法的實現將是一個替代方案:
methodName(new Vector(x, y, w, h))
3
首先,你應該知道什麼是編程簽名。函數的簽名是它的表示;函數的名稱及其參數決定了它的簽名。
重載意味着更改函數的簽名以滿足我們的需求。
看一看下面的例子:現在
int sum(int x, int y, int z) {
return x + y + z;
}
int sum(int x, int y) {
return x + y;
}
,功能sum()
可以通過兩種不同的方式被稱爲:要麼你可以用兩個參數來調用它,或者你可以用三個參數來調用它。您已更改其簽名以滿足您的需求。不是爲兩個參數編寫單獨的函數,而是將負載放在同一個函數上,這就是爲什麼這稱爲重載。
相關問題
- 1. 方法重載和方法重寫有什麼區別Ios
- 2. 爲什麼你需要重載方法?
- 3. 爲什麼不允許重載方法內的方法(例如重載閉包)?
- 4. 在PHP中重載屬性和方法 - 原因是什麼?
- 5. 什麼是重新加載UIView的正確方法?
- 6. Grails什麼是重新加載gsp的正確方法
- 7. 方法解析 - 爲什麼重載的方法不叫
- 8. Java:重載方法,方法(空)會發生什麼?
- 9. 在Typescript中執行方法重載的更好方法是什麼?
- 10. 它是方法重載?
- 11. Ruby/Rails:重寫rails方法的正確方法是什麼?
- 12. 重寫泛型方法的正確方法是什麼?
- 13. 爲什麼重載主要方法會導致語法錯誤?
- 14. 我們無法在WCF中重載方法的原因或限制是什麼?
- 15. 在C#中使用'this()'調用重載方法的正確語法是什麼?
- 16. 重載方法
- 17. 重載方法
- 18. 方法重載
- 19. 重載方法
- 20. 方法重載
- 21. 重載方法
- 22. 重載方法
- 23. 重載方法和方法
- 24. 什麼是restTemplate.exchange()方法?
- 25. 什麼是Kerberos方法?
- 26. 什麼是敏捷方法?
- 27. 什麼是HOME方法?
- 28. 什麼是方法內聯?
- 29. 什麼是laravel render()方法?
- 30. 什麼是getApplicationContext()方法?