public static void Main()
Smartphone phone = new Smartphone("XZY132");
phone.OperacniSystem = OperacniSystem.Android;
Tablet tablet = new Tablet("ABY005");
tablet.OperacniSystem = OperacniSystem.iOS;
Notebook ntb = new Notebook("126OQM");
ntb.OperacniSystem = OperacniSystem.Windows;
MobilniZarizeni[] zarizeni = new MobilniZarizeni[] { phone, tablet, ntb };
foreach (MobilniZarizeni mz in zarizeni)
if (mz is IUmiCistOtiskyPrstu)
IUmiCistOtiskyPrstu ctecka = (IUmiCistOtiskyPrstu) mz;
ctecka.PrectiOtisk("otisk");
abstract class MobilniZarizeni
public string VyrobniKod;
public OperacniSystem OperacniSystem;
public abstract void Spustit();
class Smartphone : MobilniZarizeni, IUmiCistOtiskyPrstu, IUmiFotit
public Smartphone(string vyrobniKod)
public override void Spustit()
Console.WriteLine("Spoustim telefon s " + OperacniSystem);
public string UdelejFotku()
public void NahrajOtisk(string otisk)
public bool PrectiOtisk(string otisk)
class Tablet : MobilniZarizeni, IUmiFotit
public Tablet(string vyrobniKod)
public override void Spustit()
Console.WriteLine("Spoustim tablet s " + OperacniSystem);
public string UdelejFotku()
class Notebook : MobilniZarizeni, IUmiCistOtiskyPrstu
public Notebook(string vyrobniKod)
public override void Spustit()
Console.WriteLine("Spoustim notebook s " + OperacniSystem);
public void NahrajOtisk(string otisk)
public bool PrectiOtisk(string otisk)
interface IUmiCistOtiskyPrstu
void NahrajOtisk(string otisk);
bool PrectiOtisk(string otisk);