[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