Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Matrix avatar Matrix 1092 Точки

[Useful Info] OOP - Полезни линкове, съвети и инфо по темата

В хода на моето обучение, последния обектно ориентиран код, който съм писал беше за изпита по ООП, когато бях в Телерик, та оттогава досега бая неща съм позадбравил и реших да си ги преговоря... За щастие имам навика да си водя бързи записки (къде без грешки, къде не) по различни теми и да ги качвам в блога, така че просто се върнах да си припомня какво е било... Видях, че съм писал една полезна тема със съвети за самия изпит по ОПП, който и тук в СофтУни се очертава да бъде май същия, така че ви я споделям, мисля че ще ви влезе в употреба.

С това откривам и самата тема, която можем да я използваме с такава цел - да си споделяме различни полезни ресурси... Честно казано, ООП темата е бая дебела и има доста за четене по нея, така че тук можем да споделяме различни полезни линкове.

9
C# OOP Basics 19/09/2014 15:34:38
GalyaGeorgieva avatar GalyaGeorgieva 88 Точки

Имам въпрос?

Клас-наследник има два метода :

- единият се имплементира като интерфейс (Метод Х)

- другият идва като member от абстрактен клас-родител (Метод У), т.е. не е в интерфейс

Класът-наследник трябва да вложи единия метод "У"  в другия метод "Х"...

Та въпросът ми е отделно ли  трябва да овъррайдвам вложения метод "У" (преди да го вложа в другия), защото  Resharper ми се кара, ако не го направя или нещо бъркам?

0
RoYaL avatar RoYaL Trainer 6849 Точки

Какво разбираш под влагане на методи? Може ли пример?

 

0
GalyaGeorgieva avatar GalyaGeorgieva 88 Точки

Това ми се получи на финал, но направих метода DestroySHip(Ship target) virtual, защото иначе трябваше да го имплементирам навсякъде в класовете наследници.(а си мислех, че като го викам в другия метод няма нужда отделно да го овъррайдвам)

ИНТЕРФЕЙСЪТ: public interface IAttack

    {
        string Attack(Ship target);
    }

КЛАС РОДИТЕЛ: public abstract class BattleShip : Ship, IAttack

public abstract string Attack(Ship target);

public virtual string DestroySHip(Ship target)
        {
            return string.Format("BOMMMMM {0}", target.Name);
        }

КЛАС НАСЛЕДНИК: public class Destroyer : BattleShip

public override string Attack(Ship targetShip)
        {
            this.DestroySHip(targetShip);
            return "Destroyer :  They didn't see us coming!" + this.DestroySHip(targetShip) + " " + targetShip.GetType().Name;
        }

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.