🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #2754

Re: interface of abstracte klasse?

#2754
From: Joost
Date: Sun, 14 Mar 2004 20:14
36 lines
3097 bytes
> Daarom had ik gedacht aan een
> abstracte klasse maar dan heb ik geen controle dat alle methode'n worden
> ge�mplementeerd.

Als je een class een abstract class laat extenden, en die extended class 
is zelf niet abstract MOET je ALLE nog abstracte methods (zowel van de 
direct subclassed abstract class als van evt. 'hogere' abstract 
classes/interfaces) implementeren. Ziedaar je controle.

> Het gaat er hem om dat ik een interface/abstracte klasse wil maken waar ik
> definieer welke methoden ik heb voor het importeren van bestanden. In de
> klasse die de interface implementeerd of de abstracte klasse verlengd
> schrijf ik dan de effectieve broncode voor die methode. Wanneer ik een
> abstracte klasse gebruik ben ik niet zeker dat bij het maken van een andere
> klasse ook alle methoden worden ge�mplementeerd en dat is hier wel nodig dus
> als iemand een idee heeft of de gulden middenweg?

Dat is dus wel zo. Waar jij volgens mij bang voor bent is het scenario 
zoals je dat bijvoorbeeld bij Servlets aantreft; in HttpServlet is elke 
method al ge�mplementeerd met dummy inhoud. Als je in een subclass dan 
niet oplet sla je mogelijk methods over (want een override is nooit 
verplicht). Maar dat is hier dus niet aan de hand; een concrete class 
kan niet ��n abstract method meer hebben.

Volgens mij is een abstract class dus wel degelijk je oplossing. Het in 
een andere posting geschetste scenario waarbij een interface deels wordt 
ge�mplementeerd door een abstracte class, die vervolgens weer wordt 
extended door ��n of meerdere "eind"-subclasses, kom je veel tegen als 
alle "eind"-subclasses een aantal methods gezamenlijk kunnen gebruiken. 
Zulke methods (met name utilities, bestandsafhandeling, etc.) neem je 
dan als niet-abstract in de abstracte class op.

Hopelijk brengt dit je wat verder.

Groeten,
Joost van Stuijvenberg
Technical Details
Message-ID: <4054bccf$0$558$e4fe514c@news.xs4all.nl>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed.icl.net!skynet.be!newsfeed.wirehub.nl!transit.news.xs4all.nl!not-for-mail
References: <Jt_4c.34333$9T2.2366510@phobos.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII
X-Google-Thread: 107324,dabf0b8920a17871
X-Google-Attributes: gid107324,public
X-Google-Thread: fcea4,dabf0b8920a17871
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2004-03-14 12:13:04 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed.icl.net!skynet.be!newsfeed.wirehub.nl!transit.news.xs4all.nl!not-for-mail
Date: Sun, 14 Mar 2004 21:14:52 +0100
From: Joost <niet.versturen@email.bestaat.niet>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6) Gecko/20040113
X-Accept-Language: nl, nl-be, en, en-gb, en-us
MIME-Version: 1.0
Newsgroups: be.comp.programming,nl.comp.programmeren
Subject: Re: interface of abstracte klasse?
References: <Jt_4c.34333$9T2.2366510@phobos.telenet-ops.be>
In-Reply-To: <Jt_4c.34333$9T2.2366510@phobos.telenet-ops.be>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 37
Message-ID: <4054bccf$0$558$e4fe514c@news.xs4all.nl>
NNTP-Posting-Date: 14 Mar 2004 21:13:03 CET
NNTP-Posting-Host: 194.109.194.22
X-Trace: 1079295183 news.xs4all.nl 558 [::ffff:194.109.194.22]:11101
X-Complaints-To: abuse@xs4all.nl