[JAVA] wat is een "abstract class"

Pagina: 1
Acties:
  • 1.557 views sinds 30-01-2008
  • Reageer

  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
Wat is in hemelsnaam een Abstract Class??? Ik ben het nu al een paar keer tegen gekomen in het boek, maar een duidelijke uitleg kan ik nergens vinden :? Dus wie kan me dit uitleggen?? b.v.d.

  • Stephan Oudmaijer
  • Registratie: Oktober 2000
  • Laatst online: 16-08-2023
een abstracte classe is een classe die alleen bedoelt is voor overerving. Je mag GEEN instanties van deze classe maken.

Probeer dit maar is:

import java.sql.*;

class Test
{
public static void main(String [] arguments)
{
//Dit gaat fout want je kan een abstracte class niet instatieeren.

Resultset s = new Resultset();
}
}

  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
hmmm.... vaag?

is d'r ook een simpel voorbeeld? thnx

edit:

hehehe :) staat d'r al bij, thnx!

  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
Nu vraag ik mij alleen af, wat hier het nut van is. Waarom zou iemand zijn class zo willen defineren?

  • Stephan Oudmaijer
  • Registratie: Oktober 2000
  • Laatst online: 16-08-2023
simpel voorbeeld :)

zie het zo. Je maakt bijvoorbeeld een class Voertuig hierin leg je eigenschappen in vast die voor alle voertuigen gelden. Je wilt alleen niet dat mensen die deze classe gaan gebruiken de eigenschappen gaan wijzigen. Dus je maakt hem abstract. Dit heeft tot gevolg dat ze alleen EXTRA eigenschappen aan een voertuig kunnen toevoegen.

voorbeeld:

abstract class Voertuig
{
//dit atribuut is beschikbaar bij overerving.
protected int aantalWielen;

//Abstracte method moet je implementeren als je overerft.
abstract public String soortVoertuig();

//Dit is geen abstracte methode kun je dus gebruiken.
public void setWielen(int aantalWielen)
{
this.aantalWielen = aantalWielen;
}

//idem
public int getWielen()
{
return aantalWielen;
}
}

class Auto extends Voertuig
{
Auto(int aantalWielen)
{
//als je aantalwielen protected maakt in Voertuig.
this.aantalWielen = aantalWielen;

//of als je aantalwielen private maakt in Voertuig.
this.setWielen(aantalWielen);

}

//Moet je implementeren.
public String soortVoertuig()
{
System.out.println("Een Auto, met "+ this.getWielen() +" wielen");
return "Een Auto, met "+ aantalWielen +" wielen";
}
}

class Main
{
public static void main(String [] args)
{
Auto a = new Auto(4);
System.out.println(a.soortVoertuig());
}
}

iets aangepast zo is het gebruik van abstract / private / protected wat duidelijker hoop ik =]

  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
Durf duidelijke taal te vragen. Ik snap het!!

Muchias Grassias!!!!!!!!!!!!!

  • Stephan Oudmaijer
  • Registratie: Oktober 2000
  • Laatst online: 16-08-2023
btw welk boek gebruik je als ik vragen mag ? :)

Verwijderd

Als het 'Computing Concepts with Java 2' is dan weet ik ook de opleiding die je volgt (en dat je afgelopen maandag niet goed hebt opgelet) ;)

  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
Ik volg gewoon zelfstudie, ik moet het Java Certificaat zien te halen voor mijn werk. (Ik ben gekapt met school...)

edit:

Boek: Java 2 Certification Training Guide - Jamie Jaworski, ISBN: 1-56205-950-5

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 21-10 23:25
Ook leuk zijn abstracte methodes in abstracte klassen.

Als je dat doet dan maak je een "contract"

Het effect van een abstracte methode is dat je verplicht bent om die methode the impolementeren in je eigen klasse.
code:
1
abstract void init();

Nu ben je verplicht om deze methode te implementeren in je overgeerfde klasse.

In het object actionlistener zie je het bijvoorbeeld terug.

  • MaxxRide
  • Registratie: April 2000
  • Laatst online: 05-10 11:46

MaxxRide

Surf's up

Is idd erg handig als je een object model gaat opzetten met hieracrhie, echt de uitvinding van de eeuw helemaal als je in een groep moet developen

If you are not wiping out you are nog pushing enough...


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 00:03
Actionlistener is een interface, geen abstracte klasse.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 21-10 23:25
Nu je het zegt, da's waar ook.

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 06-10 09:22

Clay

cookie erbij?

ja joh!

....


Niet dat ik er wat van weet, maarjah >:)

kan wel wat java, ik bedoel, ik snap wat hier allemaal staat, maar daar houdt het op. :P

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Acties:
  • 0 Henk 'm!

  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
En wie is er dan zo slim om een goed voorbeeld te bedenken, wat een abstract class is, en geen interface? :)

Acties:
  • 0 Henk 'm!

  • MaxxRide
  • Registratie: April 2000
  • Laatst online: 05-10 11:46

MaxxRide

Surf's up

Je krijgt iets als dit (zelf even verzonnen).
code:
1
2
3
4
5
public abstract class Figuur
{
  public abstract double oppervlak();

}

Als je nu bijvoorbeeld een vierkant hebt:
code:
1
2
3
4
5
6
7
8
9
public class Vierkant extends Figuur
{
  public double Oppervlak()
  {
    //bereken het oppervlak
    //deze methode MOET je nu dus
    // implementeren
  }
}

Zo werkt het, dit is natuurlijk een erg bekrompen voorbeeld.

Suc6 :)

If you are not wiping out you are nog pushing enough...


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 00:03
Verschil tussen een interface en een abstracte klasse is dat een abstracte klasse wel functiedefinities kan bevatten, en een interface niet.

Een klasse is een abstracte klasse als er minstens 1 abstracte methode in staat.

Een interface bestaat uit een verzameling functiedeclaraties, zonder definities.

Een abstracte klasse met daarin alleen abstracte methodes heeft eigenlijk dezelfde functie als een interface.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1