Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zasto je ovo dozvoljeno?

[es] :: .NET :: Zasto je ovo dozvoljeno?

[ Pregleda: 2058 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

marko_81
Marko Acović

Član broj: 97248
Poruke: 133
*.dynamic.isp.telekom.rs.



+1 Profil

icon Zasto je ovo dozvoljeno?16.11.2010. u 15:21 - pre 163 meseci
Ako definisem interfejs i klasu koja ga reazlizuje:
Code:

public interface IInterfaceA {...}

public class ClassA : IInterfaceA {...}

da li je ovakvo instanciranje objekta klase ispravno i ako jeste, zasto?
Code:

public class ClassB {
    IInterfaceA obj = new ClassA();
}
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Zasto je ovo dozvoljeno?16.11.2010. u 15:38 - pre 163 meseci
Jeste ispravno jer si ti takvom deklaracijom promenljive rekao nesto kao "ova promenljiva prihvata ono sto definise ovaj interface" sto je za tu klasu tacno. To sto ona mozda sadrzi jos stosta je nebitno.
Interfejsi tome i sluze :)
 
Odgovor na temu

Boris B.
Ljubljana

Član broj: 213615
Poruke: 286
*.zaslon-telecom.si.



+14 Profil

icon Re: Zasto je ovo dozvoljeno?17.11.2010. u 09:49 - pre 163 meseci
OOP Polimorfizam
if it walks like a duck and quacks like a duck, it could be a dragon doing a duck
impersonation.
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9490
*.teletrader.com.



+10253 Profil

icon Re: Zasto je ovo dozvoljeno?17.11.2010. u 11:29 - pre 163 meseci
S tim da ovde nad promenljivom obj ne možeš da izvršavaš one funkcije klase ClassA koje nisu implementacije interfejsa IInterfaceA
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

Boris B.
Ljubljana

Član broj: 213615
Poruke: 286
*.zaslon-telecom.si.



+14 Profil

icon Re: Zasto je ovo dozvoljeno?17.11.2010. u 11:51 - pre 163 meseci
Naravno da mozes, (obj as ClassA).NonInterfaceMethod(), doklegod "obj is ClassA"
if it walks like a duck and quacks like a duck, it could be a dragon doing a duck
impersonation.
 
Odgovor na temu

marko_81
Marko Acović

Član broj: 97248
Poruke: 133
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Zasto je ovo dozvoljeno?17.11.2010. u 13:35 - pre 163 meseci
Hvala svima na objasnjenjima. Sad je mnogo jasnije.
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9490
*.teletrader.com.



+10253 Profil

icon Re: Zasto je ovo dozvoljeno?17.11.2010. u 14:38 - pre 163 meseci
Citat:
Boris B.: Naravno da mozes, (obj as ClassA).NonInterfaceMethod(), doklegod "obj is ClassA"
OK, ali to je već kastovanje.
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

lelorinel
gibanica.com

Član broj: 255698
Poruke: 70



+59 Profil

icon Re: Zasto je ovo dozvoljeno?29.11.2010. u 13:17 - pre 162 meseci
ujedno da dodam da prema dependency inversion principu, prosledjivanje interface tipa kao parametra je pozeljno jer se time povecava testabilnost koda (moguce injectovanje mock/stub implementacije)
 
Odgovor na temu

[es] :: .NET :: Zasto je ovo dozvoljeno?

[ Pregleda: 2058 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.