Jeśli utworzę tę metodę
public void foo()
A potem tworzę taką przeciążoną wersję
public void foo( string bar )
Czy mówimy, że druga funkcja przeciąża pierwszą, czy obie metody są jednakowo „przeciążone”?
Oznaczałoby to (tak sądzę), że istnieje funkcja typu podstawowego, która jest przeciążona przez inną funkcję (trochę jak dziedziczenie, ale nie tak naprawdę).
Zakładając, że jedna metoda może „przeciążać inną”, oznaczałoby to także terminy takie jak „przeciążający” i „przeciążający”, jeśli w ogóle jest to słowo. Ale to nie wydaje się właściwe, zwłaszcza że możesz mieć kilka przeciążeń.
Doszedłem do tego pytania, kiedy chciałem zapisać proces tworzenia przeciążonej metody i chciałem jak najbardziej poprawnie zapisać.
Przykłady:
- Przeciążam się
foo
- Ja przeciążenia
foo
zfoo( string bar )
- Tworzę przeciążoną metodę
- Sprawiam, że foo jest przeciążone
Więc tak, ten rodzaj myślenia sprawił, że nie jestem pewien, co z tym zrobić. Istnieją setki, jeśli nie tysiące, opisów przeciążania funkcji w Internecie, ale na pierwszy rzut oka nie mogłem znaleźć rozwiązania tego problemu.
źródło
Odpowiedzi:
Mówiąc o przeciążeniach, nazwa funkcji jest przeciążona, a nie sama funkcja. Funkcje przeciążające nazwę to „przeciążenia” i przeciążenie nazwy, ale nie wzajemnie. W przykładzie,
"public void foo()"
i"public void foo( string bar )"
oba przeciążać nazwę „foo”. Dlatego nie można mówić o przeciążeniu i przeciążeniu jednej z funkcji, ponieważ nie mają one bezpośredniego związku.W swoich przykładach możesz powiedzieć, że przeciążasz „foo” (nazwa) za pomocą „foo (pasek ciągów)” (funkcja), ale nie możesz powiedzieć, że tworzysz przeciążoną metodę, ponieważ metody nigdy nie są przeciążone. Możesz powiedzieć, że tworzysz metodę przeciążania. Sformułowanie „powodowanie przeciążenia foo” to po prostu gorszy sposób powiedzenia „przeciążanie foo”.
źródło
Powiedziałbym po prostu, że
foo
jest przeciążony. Z pewnością nie ma tu miejsca związek pan / niewolnik lub rodzic / dziecko.źródło
Myślę, że dobrym sposobem na wyrażenie tego jest skupienie się na końcowym wyniku, a nie na zmianach wprowadzonych w klasie w miarę upływu czasu. Dlatego zamiast mówić „przeładowałem„ foo ”za pomocą„ foo (inne parametry) ”,„ mówisz ”foo to funkcja przeciążona, za pomocą„ foo () ”i„ foo (inne parametry) ”.
źródło