Article View: be.comp.programming
Article #2754Re: interface of abstracte klasse?
From: Joost
Date: Sun, 14 Mar 2004 20:14
Date: Sun, 14 Mar 2004 20:14
36 lines
3097 bytes
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-mailReferences:
<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