Vra

Hoekom kan ek nie in staat is om statiese tipe metodes in koppelvlak spesifiseer.

Is daar enige alternatiewe om dit te doen ??

maar ek moet gebruik net inerface insted van abstrakte klas.

/

Is daar enige probleem in specifing Toegang specific in koppelvlak?

Ek wil die gebeure in Interface spesifiseer en wat moet slegs acessed deur geïmplementeer klas so ek wil beskermde Toegang specific om so 'n geval.

en ek het sekere funksie wat gebruik maak van koppelvlak kan maak in 'n ander klas in so 'n geval kan ek openbare Toegang specific gebruik.

Was dit nuttig?

Oplossing

Ek weet nie watter taal jy neem oor, maar ek sal beantwoord asof in C #.

Hoekom kan ek nie in staat is om statiese tipe metodes in koppelvlak spesifiseer. Is daar enige alternatiewe om dit te doen ??

Dit is omdat jy nie staties metodes kan ignoreer. Wat probeer jy bereik?

Lede in koppelvlakke is altyd in C # publiek. As jy nodig het om ander vlakke beskerming het, gebruik 'n abstrakte klas. Wat sou die doel van beskermde gebeure wees as jy hulle nie van die koppelvlak toegang? Dit het niks te doen met die koppelvlak dan (onthou, kan die koppelvlak het geen kode). As jy verwys na wat net die uitvoering van klasse kan die gebeure in te samel, wees verseker dat hulle die enigstes wat hulle kan in te samel. Gebeure is gebou op die manier - net die klas self kan gebeure in te samel. Jy kan 'n gebeurtenis eksterne uit die klas nie in te samel (behalwe as jy 'n metode van die klas, die verhoging van die gebeurtenis).

Ander wenke

interfaces net beskryf jou implementator aan die publiek. Die enigste toegang wysiger vir 'n koppelvlak is "interne" op die koppelvlak self, wat dit 'n intertface net sigbaar vir almal lid van dieselfde gemeente of die kinders bekend gemaak met die "InternalsVisibleTo" kenmerk maak.

As net implementators n sekere gebeurtenis moet sien, dan so 'n geval sou moes wees in 'n soort van basis klas.

'n statiese metode is pretty much 'n oorblyfsel van prosedurele programmering. hulle het hul gebruik (sien bv uitbreiding metodes), maar regtig het nie veel om te doen met OOP het.

Ek is op verlies op wat jy bedoel met die eerste vraag, maar jou tweede vraag oor die gebruik van beskermde in koppelvlakke is 'n reguit "nee". Koppelvlakke word genoem "interfaces" omdat hulle die "interface" (dit wil sê die openbare metodes) waarin jy kan kommunikeer met daardie voorwerp spesifiseer.

My ondervinding met OOP is met betrekking tot Action 3, maar ek is seker dit is relatief.

Statiese metodes kan nie overidden en hulle nie gewoond raak wanneer 'n klas strek die voorouer klas.

Toegang wysigers word nie gebruik in die koppelvlak omdat die koppelvlak gebruik word vir die opstel van OPENBARE metodes.

In AS3 n koppelvlak is bloot 'n metode handtekening met geen blok, maar insluitend data-tipes.

Dit is belangrik om daarop te let dat lucky / setter metode handtekeninge kan gebruik word in 'n koppelvlak asook. Dit is nuttig en as jy net gebruik om 'n setter jy 'n toegang slegs-lees publiek om 'n private vervat veranderlike geskep het.

Sover koppelvlak in plaas van 'n abstrakte klas, dit hang alles af van hoe jy jou kode te implementeer. Dikwels en koppelvlak en 'n abstrakte klas saam gebruik word om verskillende resultate met behulp van oorerwing en polimorfisme (strek / implemente) te bereik.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top