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.
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();
}
}
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();
}
}
hmmm.... vaag?
is d'r ook een simpel voorbeeld? thnx
is d'r ook een simpel voorbeeld? thnx
edit:
hehehe
staat d'r al bij, thnx!
hehehe
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 =]
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 =]
Durf duidelijke taal te vragen. Ik snap het!!
Muchias Grassias!!!!!!!!!!!!!
Muchias Grassias!!!!!!!!!!!!!
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)
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
Boek: Java 2 Certification Training Guide - Jamie Jaworski, ISBN: 1-56205-950-5
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.
Nu ben je verplicht om deze methode te implementeren in je overgeerfde klasse.
In het object actionlistener zie je het bijvoorbeeld terug.
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.
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...
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.
En wie is er dan zo slim om een goed voorbeeld te bedenken, wat een abstract class is, en geen interface?
Je krijgt iets als dit (zelf even verzonnen).
Als je nu bijvoorbeeld een vierkant hebt:
Zo werkt het, dit is natuurlijk een erg bekrompen voorbeeld.
Suc6
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...
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.
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