Graduately/content/programovani/3-rocnik/07-rozhrani.md
pepaskopec-blip 333085ee53 Add a C# course with a side-by-side code runner.
Each lesson explains a topic and runs the edited program next to the text through the local .NET SDK.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-11 14:37:14 +02:00

50 lines
972 B
Markdown

---
id: cs-3-rozhrani
nazev: Rozhraní
popis: Smlouva: které metody typ musí mít.
---
# Výklad
## interface
*I*
- interface nemá hotový kód, jen hlavičky metod.
- class Pes : IMluvici slíbí, že Mluv napíše.
- Jedna třída může splnit víc rozhraní. Dědit může jen jednu třídu.
> Tip: Jméno rozhraní se často píše s I na začátku: IMluvici.
## Společný typ
*seznam*
- Proměnná typu rozhraní udrží kohokoli, kdo smlouvu splnil.
- Pes a Radio nemají společného předka, ale oba umí Mluv.
- Smyčka jim rozumí přes smlouvu, ne přes původ.
> Tip: Rozhraní neříká, jak metoda funguje. To napíše až třída.
# Kód
```
IMluvici[] veci = { new Pes(), new Radio() };
foreach (IMluvici v in veci)
{
Console.WriteLine(v.Mluv());
}
interface IMluvici
{
string Mluv();
}
class Pes : IMluvici
{
public string Mluv() { return "haf"; }
}
class Radio : IMluvici
{
public string Mluv() { return "hudba"; }
}
```