Autor | Zpráva | ||
---|---|---|---|
TomAsQo Profil |
#1 · Zasláno: 26. 4. 2007, 15:54:42
nevysvetlite mi pls, co to je? som to akosi z knizky nepochopil ;( njeje to nahodou TO ISTE ako dedicnost?
sry za mozno primitivnu otazku, ale nikde som nenasiel odpoved ;( |
||
TFSi Profil * |
#2 · Zasláno: 26. 4. 2007, 16:13:05
Interface by mohlo být uživatelské rozhraní, implements jsou nástroje (nářadí). Toť otrocký překlad do češtiny. Jinak by to chtělo nějaké souvislosti.
|
||
ronnie Profil |
#3 · Zasláno: 26. 4. 2007, 16:53:21
Interface (rozhraní) určuje, které metody musí třída obsahovat. Implements znamená "implementuje" a používá se při deklaraci třídy.
interface Rozhrani { public function metoda(); } class Trida implements Rozhrani { } znamená, že vytváříš třídu Třída, která implementuje rozhraní Rozhrani a musí zde být metoda metoda(). Když teď vytvoříš skript $class = new Trida(); tak vyskočí chyba, že třída nemá implementovanou metodu metoda. class Trida implements Rozhrani { public function metoda() { //udelej neco } } už bude fungovat. Více viz http://php.interval.cz/clanky/objektove-rozhrani/ |
||
ja ;) Profil * |
#4 · Zasláno: 26. 4. 2007, 17:42:46
clanok z intervalu som si precital, ale stale akosi nechapem, naco to je dobre...
je to viac-menej len na spriehladnenie kodu, aby som vedel, ze v jakej triede sa jake metody budu nachadzat?leboo ako vidim v rozhrani moze byt ina DEKLARACIA metod a premennych... |
||
ronnie Profil |
#5 · Zasláno: 26. 4. 2007, 18:36:08
Příklad s databází.
interface Databaze { public function getResult(); public function connect(); ... } class MySQL implements Databaze { ... implementace metod } class Oracle implements Database { ... implementace metod } atd. Rozhraní v tomto případě říká, jaké metody musí každá třída obsahovat. Pokud je neobsahuje, zobrazí se chyba. Metody mají stejný název, ale dělají něco jiného (jedna vytváří spojení s MySQL, druhá s PostgreSQL ap.) = polymorfismus. Představ si, že postavím projekt na MySQL, ale v půlce zjistím, že by bylo lepší projekt postavit na SQLite. Místo $class = new MySQL(); napíšu $class = new SQLite(); a nic víc není třeba. Díky rozhraní mám jistotu, že SQLite má stejné metody jako MySQL, tzn. rozhraní jsou v OOP proto, aby udělali kód bezpečnější a přehlednější. |
||
MiSHAK Profil |
#6 · Zasláno: 26. 4. 2007, 19:51:50
TFSi nástroje jsou tools nebo instruments...
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0