Size: a a a

2020 May 30

GF

Gleb F. in unity3d.ru
Evgeny
пачаны,можете пояснить за абстрактные классы ?

главный вопрос, а зачем собстно создавать абстрактный класс, если нам все равно потом нужно прописывать с нуля все эти методы в дочерних классах?

Много уже что перерыл в инете,но так и не понял до конца, пришел к выводу, что это просто как некий синтаксический сахар и защита от дурака, чтоб не забыть реализовать определенные методы в классе
Это в скорее не защита от дурака, а чеклист разрабу - что надо реализовать чтобы всё работало. Ну и да, ссылаясь на родителя можно детей юзать
источник

E

Evgeny in unity3d.ru
Gleb F.
Это в скорее не защита от дурака, а чеклист разрабу - что надо реализовать чтобы всё работало. Ну и да, ссылаясь на родителя можно детей юзать
ну тоесть по сути никакой больше практической пользы нет? с таким же успехом можно просто комментарии использовать
источник

G

Graf in unity3d.ru
Лол
источник

TS

Timofei Shibaev in unity3d.ru
Evgeny
ну тоесть по сути никакой больше практической пользы нет? с таким же успехом можно просто комментарии использовать
Следует понимать абстрактный класс, как гарант поведения для унаследованного, от него класса. И возможность объединения некоторых сущностей с одинаковыми свойствами в одну группу. Это даёт то, что можно писать методы, принимающие на вход не конкретный класс, а абстрактный, т.е поведение (контракт взаимодействия) класса, что дает взаимозаменяемость, без изменения метода. Также абстрактные классы позволяют писать более гибкие и безопасные программы за счет полиморфизма.
источник

GF

Gleb F. in unity3d.ru
😂Да не, эт я криво объясняю)
источник

TS

Timofei Shibaev in unity3d.ru
Не кидайте камнями за тираду
источник

GF

Gleb F. in unity3d.ru
Timofei Shibaev
Следует понимать абстрактный класс, как гарант поведения для унаследованного, от него класса. И возможность объединения некоторых сущностей с одинаковыми свойствами в одну группу. Это даёт то, что можно писать методы, принимающие на вход не конкретный класс, а абстрактный, т.е поведение (контракт взаимодействия) класса, что дает взаимозаменяемость, без изменения метода. Также абстрактные классы позволяют писать более гибкие и безопасные программы за счет полиморфизма.
👍
источник

G

Graf in unity3d.ru
Всю науку так к херам сведете) Это полиморфизм, инвариантность и контрвариантость типов, контракты и тп
источник

AD

Aidan Arcueid D'athe... in unity3d.ru
Ребят, нашла вот такой ассет, помогите переделать его для отображения спрайтов https://github.com/Eldoir/Array2DEditor
источник

V

Vadim in unity3d.ru
Всем привет. Что делать если враг меня загоняет в стену, хотя там композитный коллайдер?
источник

E

Evgeny in unity3d.ru
Timofei Shibaev
Следует понимать абстрактный класс, как гарант поведения для унаследованного, от него класса. И возможность объединения некоторых сущностей с одинаковыми свойствами в одну группу. Это даёт то, что можно писать методы, принимающие на вход не конкретный класс, а абстрактный, т.е поведение (контракт взаимодействия) класса, что дает взаимозаменяемость, без изменения метода. Также абстрактные классы позволяют писать более гибкие и безопасные программы за счет полиморфизма.
не ну в теории я понимаю, но с практической точки зрения не очень. Какой нить пример бы
источник

S

Stanislav Nikolaev in unity3d.ru
как остановить проигрывание анимации в аниматоре?
источник

G

Graf in unity3d.ru
Stanislav Nikolaev
как остановить проигрывание анимации в аниматоре?
Смотря как включал, setbool, setfloat и тд
источник

S

Stanislav Nikolaev in unity3d.ru
Graf
Смотря как включал, setbool, setfloat и тд
включал через SetTrigger()
источник

G

Graf in unity3d.ru
Stanislav Nikolaev
включал через SetTrigger()
Ну и выключай так же
источник

E

Evgeny in unity3d.ru
Timofei Shibaev
Следует понимать абстрактный класс, как гарант поведения для унаследованного, от него класса. И возможность объединения некоторых сущностей с одинаковыми свойствами в одну группу. Это даёт то, что можно писать методы, принимающие на вход не конкретный класс, а абстрактный, т.е поведение (контракт взаимодействия) класса, что дает взаимозаменяемость, без изменения метода. Также абстрактные классы позволяют писать более гибкие и безопасные программы за счет полиморфизма.
ну тоесть практически все объеснение что я находил в инете выглядит примерно так:
-это некий контракт, что мы обязуемся реализовать в дочерних классах эти методы.

Ну а на вопрос зачем это вообще нужно и какая практическая польза от этого, никто не дает ответа.
источник

TS

Timofei Shibaev in unity3d.ru
Evgeny
ну тоесть практически все объеснение что я находил в инете выглядит примерно так:
-это некий контракт, что мы обязуемся реализовать в дочерних классах эти методы.

Ну а на вопрос зачем это вообще нужно и какая практическая польза от этого, никто не дает ответа.
Со временем, наверное, можно понять, когда появятся классы с похожей функциональностью и свойствами и их придется где-то использовать, тогда для взаимозаменяемости нужно их объединять.

Комментарии не советую писать где попало, так как они могут быть неактуальны из-за измененного кода. В этом случае лучше выбирать корректные названия для классов, переменных и т. д.
источник

TS

Timofei Shibaev in unity3d.ru
Новичкам сложно понять практическое применение интерфейсов и абстрактных классов, пока сами с этой проблемой не столкнутся
источник

E

Evgeny in unity3d.ru
когда мы например наследуем от обычного класса тут понятно, у нас передаются все методы родительского класса, которые мы там определили. Это сокращает количесво кода и вообще удобно. А тут по сути просто мы создаем класс, где просто пишем список методов, которые потом нам нужно в каждом классе отдельно прописывать.
источник

TS

Timofei Shibaev in unity3d.ru
Написал один метод, который принимает абстракцию и забыл про него. А для расширения его функциональности, следуя принципу SOLID, мы можем написать классы детей от абстрактного
источник