[Java lista] override vs overload
Zsombor
gzsombor at gmail.com
2008. Már. 11., K, 15:13:41 CET
Szerintem elég zavaros, sőt eldönthetetlen esetekhez vezetne. Pl a következő
példa esetében:
public class Parent {
public void test(Object a, Object b, Object c) {
System.out.println("Parent.test(Object o)");
}
}
public class Child extends Parent {
public void test(String a, String b, Object c) {
System.out.println("string-string-object");
}
public void test(Object a, String b, String c) {
System.out.println("object-string-string");
}
public void test(String a, Object b, String c) {
System.out.println("string-object-string");
}
}
esetében egy test("Goodbye", "blue", "monday") hivás még a legöregebb
tengerészeket is gondolkodásra késztetné :)
ĂĽdv
Zs
2008/3/11 Fisha <fisha at freemail.hu>:
>
> Hello!
>
>
> Es ennek technikai okai vannak, vagy esetleg James igy talalta logikusnak
> a nyelv megalkotasanal?
>
> Azert kerdezem csak, mert szerintem kezreallob lenne, ha vegigszaladna az
> overloadon is.
>
>
> Fisha mailto:fisha at freemail.hu<fisha at freemail.hu>
>
>
> >
>
> br>
>
> 2008/3/11 Fisha <fisha at freemail.hu>:
>
>
> Hello!
>
>
> Biztos sokan vannak a listan akiknek egyertelmu az alabbi pelda mukodese,
> de bizom benne, hogy vannak olyanok is akiknek ujdonsagkent hat. Szivesen
> latnek velemenyeket arrol is, hogy szerintetek logikus-e igy a mukodese.
>
> A gondolatebreszto kerdes az, hogy mit ir ki az alabbi kod.
>
>
> TermĂ(c)szetesen "Child.test(Object o)" fog kiirodni, a metĂłdus szignatura
> az fordÄ‚Âtás során eldÄą'l, nincsen dinamikus invokáciÄ‚Ĺ‚ (asszem Ä‚Âgy
> nevezik) a paramĂ(c)terek aktuális tipusa szerint.
>
>
> ĂĽdv
>
> Zs
>
>
>
>
>
> Udv,
>
> Fisha mailto:fisha at freemail.hu<fisha at freemail.hu>
>
>
> Parent.java:
>
> package test;
>
>
> public class Parent {
>
> public void test(Object o) {
>
> System.out.println("Parent.test(Object o)");
>
> }
>
> }
>
> ----------------
>
>
> Child.java:
>
> package test;
>
>
> public class Child extends Parent {
>
> public void test(Object o) {
>
> System.out.println("Child.test(Object o)");
>
> }
>
>
>
> public void test(Long l) {
>
> System.out.println("Child.test(Long l)");
>
> }
>
> }
>
> -----------------
>
>
> Main.java
>
> package hu.guidance.test;
>
>
> public class Main {
>
> public static void main(String[] args) {
>
> Parent p = new Child();
>
> p.test(new Long(5));
>
> }
>
> }
>
>
>
>
>
>
> _______________________________________________
>
> Javalist mailing list
>
> Javalist at javagrund.hu
>
> http://javagrund.hu/mailman/listinfo/javalist
>
>
>
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>
>
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20080311/82c29436/attachment.html
További információk a(z) Javalist levelezőlistáról