[Java] abstracte functies

Pagina: 1
Acties:

  • active2
  • Registratie: Juni 2001
  • Laatst online: 17-07 21:56

active2

Google is your friend

Topicstarter
Goed volgende situatie (dit heb ik nog nooit echt goed begrepen)

Ik heb een klasse A en daaronder hangen de subklasses B, C, D en die erven allemaal van A. Goed in A staat nu een functie die abstract is en die worden gedeclareerd in B, C en D.

Hoe moet ik nu de juiste class opvragen met de juiste abstracte functie? Dus ik wil bijvoorbeeld eerst C hebben en vervolgens B. Hoe kan ik dit op de juiste wijze uitvoeren?

Dus ik heb Button1, Button2 en Button3. Als ik op Button1 klik dan moet er wat in een textbox verschijnen en als ik in Button2 klik dan moet er in diezelfde textbox wat anders verschijnen. En dat geldt ook voor Button3. Hoe moet ik dat dan implementeren?

Het gaat er niet zozeer om waar het voor is maar wie kan mij dat duidelijk maken?

Google, Het mirakel van de 21e eeuw!!!!


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:36
code:
1
2
B  objectB = new B();
objectB.Functie();

Hier zal de overrided method van class B uitgevoerd worden.

code:
1
2
A abstractObject = new B();
abstractObject.DoSomething();

Hier zal (door polymorphy) ook de method van class B uitgevoerd worden.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:36
Je maakt bv het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class A
{
   public abstract DoSomething();
}

class B extends A
{
  public DoSomething();
}

class App
{
    private A anObject;

    public static void Main()
    {
       ....
    }

    public void OnButton1Click()
    {
        anObject = new B();
        anObject.DoSomething();
    }

    public void Button2Click
    {
        anObject = new C();
        anObject.DoSomething();
    }
}

https://fgheysels.github.io/


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

active2 schreef op 12 december 2002 @ 23:10:
Goed volgende situatie (dit heb ik nog nooit echt goed begrepen)

Ik heb een klasse A en daaronder hangen de subklasses B, C, D en die erven allemaal van A. Goed in A staat nu een functie die abstract is en die worden gedeclareerd in B, C en D.
Je bedoelt dat hij gedeclareerd (de header) staat in A en gedefinieerd (implementatie) in B,C,D
Hoe moet ik nu de juiste class opvragen met de juiste abstracte functie? Dus ik wil bijvoorbeeld eerst C hebben en vervolgens B. Hoe kan ik dit op de juiste wijze uitvoeren?
Ik snap niet wat je hiermee bedoelt. Wat bedoel je met 'eerst'?
Dus ik heb Button1, Button2 en Button3. Als ik op Button1 klik dan moet er wat in een textbox verschijnen en als ik in Button2 klik dan moet er in diezelfde textbox wat anders verschijnen. En dat geldt ook voor Button3. Hoe moet ik dat dan implementeren?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
abstract class Fruit{
    abstract void eet();
}

class Appel extends Fruit{
    void eet(){System.out.println("appel");}
}

class Banaan extends Fruit{
    void eet(){System.out.println("banaan");}
}

class Citrus extends Fruit{
    void eet(){System.out.println("citrus");}
}


Als je nu zegt:
Fruit f = new Appel();
f.eet();

Dan krijg je dus te zien 'appel'


Je moet die abstracte functie dus zien als iets dat nog geimplementeerd moet worden, maar je weet in ieder geval wel dat het er ooit eens gaat komen, dus je mag het ook aanroepen. Fruit zelf heeft geen defintiie (implementatie) van eet, maar toch kan ik het aanroepen, omdat het bij Appel, Banaan en Citrus is geimplementeerd.

[ Voor 15% gewijzigd door Alarmnummer op 12-12-2002 23:25 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:36
Is ie daar weer met z'n fruit jah... :P
Maar idd, een goede uitleg.... Beter dan mijn onduidelijk voorbeeld iig. :+

https://fgheysels.github.io/


  • active2
  • Registratie: Juni 2001
  • Laatst online: 17-07 21:56

active2

Google is your friend

Topicstarter
Thanks dat was het stukje wat ik miste

Google, Het mirakel van de 21e eeuw!!!!


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:36
Tja, ik vind het eigenlijk maar een beetje een rare mentaliteit, als ik het zo mag zeggen.

Je wilt iets opgelost hebben, maar het kan je blijkbaar geen moer schelen hoe of waarom het zo werkt e.d. ...

https://fgheysels.github.io/

Pagina: 1