LostOblivion Skrevet 13. mars 2008 Del Skrevet 13. mars 2008 (endret) Hei, Jeg har en overliggende og en underliggende klasse. Den underliggende klassen er definert "inni" den overliggende. Jeg prøver å kalle en metode i den overliggende klassen fra en metode i dens underliggende klasse. Dette går i noen tilfeller, men ikke med overloading. Eksempel: class Overliggende { Overliggende() { Underliggende u = new Underliggende(); } private class Underliggende { Underliggende() { meh(); } } public void meh() { System.out.println("MEH!"); } } class Runner { public static void main(String[] args) { new Overliggende(); } } Dette funker helt fint, men hvis jeg har en metode i Underliggende og en metode med samme navn, men med en annen signatur (ie parametere), funker det ikke. class Overliggende { Overliggende() { Underliggende u = new Underliggende(); } private class Underliggende() { Underliggende() { meh(); // funker som forventet meh("BLEH!"); // gir kompileringsfeil; tror jeg mener meh(), selv om det er en overloadet metode } public void meh() { System.out.println("BAAAH!"); } } public void meh(String foo) { System.out.println(foo); } } class Runner { public static void main(String[] args) { new Overliggende(); } } Så det jeg lurer på er om noen veit hvordan jeg kan gjøre dette...eller er alt håp ute? Jeg kan ikke kalle metodene noe annet, fordi jeg jobber med et interface. På forhånd takk! Endret 13. mars 2008 av LostOblivion Lenke til kommentar
HV Skrevet 13. mars 2008 Del Skrevet 13. mars 2008 Litt forskjellige signaturer på gang i disse metodene dine da.. public class Overliggende { public Overliggende() { Underliggende u = new Underliggende(); } private class Underliggende { Underliggende() { meh(); Overliggende.this.meh(); } public void meh () { System.out.println("Overliggende$Underliggende.meh"); } } public void meh() { System.out.println("Overliggende.meh"); } public static void main(String[] args) { new Overliggende(); } } Lenke til kommentar
___ Skrevet 13. mars 2008 Del Skrevet 13. mars 2008 Bytt ut meh("BLEH!"); med Overliggende.this.meh("BLEH!"); Hilsen Werner Lenke til kommentar
LostOblivion Skrevet 13. mars 2008 Forfatter Del Skrevet 13. mars 2008 (endret) Litt forskjellige signaturer på gang i disse metodene dine da.. public class Overliggende { public Overliggende() { Underliggende u = new Underliggende(); } private class Underliggende { Underliggende() { meh(); Overliggende.this.meh(); } public void meh () { System.out.println("Overliggende$Underliggende.meh"); } } public void meh() { System.out.println("Overliggende.meh"); } public static void main(String[] args) { new Overliggende(); } } Det var poenget og. Takk folkens. Endret 13. mars 2008 av LostOblivion Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå