V oblasti objektově orientovaného programování je dědičnost centrálním aspektem. S její pomocí můžeš dědit z existujících tříd a přidávat nové funkčnosti v podsložkách (subtřídách). V tomto tutoriálu se zaměříš na vytvoření specifické subtřídy, "nákladního vozu", abys se prakticky naučil základy dědičnosti v C#.
Nejdůležitější poznatky
- Dědičnost umožňuje vytvořit subtřídu z základní třídy.
- Konstruktory jsou klíčové pro určení specifických vlastností subtřídy.
- Metody základní třídy mohou být v subtřídě přepsány, aby definovaly specifické chování.
Krok za krokem
Krok 1: Použití Průzkumníka projektů a přidání třídy
Abychom vytvořili subtřídu nákladního vozu, otevři svůj Průzkumník projektů. Zde klikni pravým tlačítkem myši na svůj projekt a zvol možnost „Přidat“. rozhodni se přidat novou třídu a pojmenuj ji „nákladní vůz“. Tato třída bude obsahovat všechny vlastnosti a metody, které jsou specifické pro nákladní vozy.

Krok 2: Vytvoření soukromé proměnné
V třídě nákladního vozu nyní vytvořte soukromou proměnnou, která bude ukládat počet podvozků. Tato informace je důležitá, protože hraje roli při výpočtu mýtného. Můžeš ji pojmenovat „pocetPodvozků“. Tímto je již definována první část specifických vlastností tvého nákladního vozu.
Krok 3: Vytvoření konstruktorů pro subtřídu
Teď je čas vytvořit konstruktory pro tvou třídu nákladního vozu. Nejprve začni s přetíženou metodou konstruktoru. Tato metoda přijímá parametry jako model, spotřebu a obsah nádrže. Tyto hodnoty předáš konstruktoru základní třídy Auto. Musíš se ujistit, že počet podvozků je také definován.
Krok 4: Odvození subtřídy od základní třídy
Aby byla třída nákladního vozu rozpoznána jako subtřída základní třídy Auto, přidáš v hlavě třídy nákladního vozu pomocí dvojtečky základní třídu. Tím se vytvoří vztah mezi třídou nákladního vozu a základní třídou Auto, což ti poskytne přístup k jejich metodám a vlastnostem.

Krok 5: Vytvoření druhé metody konstruktoru subtřídy
Kromě přetížené metody vytvořte běžnou metodu konstruktoru. Tato by měla mít model, spotřebu a obsah nádrže jako parametry, ale počet podvozků by neměla přijímat jako vstup. Místo toho bude standardně nastavena na dva, aby pokryla nejběžnější scénář nákladního vozu.
Krok 6: Přepsání metody jízdy
Dalším krokem je přepsání metody jízdy, která je definována v základní třídě Auto. V této metodě vypočítáš náklady na jízdu na základě ujeté vzdálenosti, parametrů vozidla a zda nákladní vůz jel po dálnici. Musíš se ujistit, že náklady na mýto jsou vypočítány podle počtu podvozků.
Krok 7: Použití switch-statements pro výpočet mýta
Zde můžeš zavést switch-výraz, který zpracovává různé případy pro počet podvozků. To je důležité, protože nákladní vozy s různými počty podvozků mají různé sazby mýta. Můžeš také použít alternativní řídicí struktury, ale switch-výraz zajišťuje přehlednost a čitelnost.
Krok 8: Volání konstruktoru subtřídy
Nyní, když je třída nákladního vozu definována, můžeš v programu CS vytvořit instanci této třídy. K tomu zavoláš konstruktor třídy nákladního vozu, abys vytvořil nový objekt nákladního vozu, který obsahuje všechny potřebné parametry. Také stanovíš, kolik nákladní vůz spotřebovává a jaké specifické vlastnosti má.

Krok 9: Jízda nákladního vozu a výstup nákladů na jízdu
Jakmile jsi instancioval nákladní vůz, nech ho jet zavoláním metody jízdy. Předáš ujetou vzdálenost a zda nákladní vůz jel na dálnici nebo ne. Na konci vypíšeš náklady na jízdu, které byly vypočítány na základě počtu podvozků, do konzole.

Souhrn – Vytvoření subtřídy nákladního vozu v C#
V tomto tutoriálu jsi se naučil, jak vytvořit subtřídu nákladního vozu v C#. Seznámil jsi se a aplikoval základy dědičnosti, když jsi implementoval soukromé proměnné a konstruktory pro subtřídu. Dokázal jsi přepsat metody a definovat specifické chování pro nákladní vozy. S těmito dovednostmi můžeš nyní psát složitější objektově orientované programy v C#.
Často kladené dotazy
Jaký je rozdíl mezi třídou a subtřídou?Třída je obecný šablonový model, zatímco subtřída dědí specifické vlastnosti a metody od základní třídy.
Jak vytvořím konstruktor v C#?Konstruktor je definován třídou, kterou vytváří, a nese stejné jméno jako třída bez návratového typu.
Mohou být metody v subtřídě přepsány několikrát?Ano, můžeš metodu v subtřídě přepsat. To je užitečné pro definování specifického chování pro různé subtřídy.
Jak používat switch-výraz v C#?Switch-výraz ti umožňuje řídit různé cesty kódu v závislosti na hodnotě proměnné. Je to efektivní způsob, jak se vyhnout složitým rozvětvením.