/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Hvad output giver programmet, og hvorfor ~
Fra : Soren Kuula


Dato : 24-02-05 17:13

(bare for sjov)

public class VisitorExperiment {
private interface Visitor {
void visit (A a);
}

private interface ExtendedVisitor extends Visitor {
void visit (B b);
}

private static class ExtendedVisitorImpl implements ExtendedVisitor {
public void visit (A a){
System.out.println("smutter");
}
public void visit(B b) {
System.out.println("træffer");
}
}

private static class A{
public void accept(Visitor vis){vis.visit(this);}
}

private static class B extends A{
public void accept(ExtendedVisitor vis){vis.visit(this);}
}

public static void main (String[] args) {
B b = new B();
ExtendedVisitor ev = new ExtendedVisitorImpl();
b.accept(ev);

Visitor v = ev;
b.accept(v);

A a = b;
a.accept(ev);

a.accept(v);
}
}


MVH
Søren

 
 
Christian Holm (24-02-2005)
Kommentar
Fra : Christian Holm


Dato : 24-02-05 19:11

træffer
smutter
smutter
smutter

Så længe man husker at metode-valg ved overloading bliver afgjort ved
compile-time, så burde det være let nok at afgøre outputtet.

Christian



Henrik Davidsen (24-02-2005)
Kommentar
Fra : Henrik Davidsen


Dato : 24-02-05 21:11

> træffer
> smutter
> smutter
> smutter

Det kom jeg også frem til... Men det var sgu svært at følge med i koden,
mens jeg telefonerede med min gamle moder

/Sjang



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste