powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Сложное наследование классов
15 сообщений из 15, страница 1 из 1
Сложное наследование классов
    #38979621
rigorMortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет
Затрудняюсь как сделать в DOT.NET. Схематически абстрактные классы выглядят так:

Код: plaintext
1.
2.
3.
4.
5.
6.
                                  
                                             base
                                            /    \
                                   processed      organized
                                            \    / 
                                             full

То есть абстрактные классы processed и organized наследуют от общего абстрактного класса base. Далее, full должен содержать реализацию processed и organized, но класс не может наследовать от более чем одного абстрактного класса. Как быть тут? Архитектура предполагает что существуют классы, содержащие реализацию или processed или organized по отдельности, а так же класс со всеми реализациями - full.
...
Рейтинг: 0 / 0
Сложное наследование классов
    #38979623
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rigorMortis,

Использовать агрегацию классов или интерфейсы.
...
Рейтинг: 0 / 0
Сложное наследование классов
    #38979640
rigorMortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Relic Hunter, как здесь могут помочь интерфейсы?
...
Рейтинг: 0 / 0
Сложное наследование классов
    #38979652
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rigorMortisкак здесь могут помочь интерфейсы?интерфейс - это чистый абстрактный класс
rigorMortisЗатрудняюсь как сделать в DOT.NETникак. не нравится - пишите на c++
...
Рейтинг: 0 / 0
Сложное наследование классов
    #38979655
rigorMortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил, интерфейс содержит только сигнатуру методов, а здесь речь идёт о наследовании реализации, так что интерфейсы не подходят.
...
Рейтинг: 0 / 0
Сложное наследование классов
    #38979656
rigorMortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rigorMortisинтерфейс - это чистый абстрактный класс
Интерфейс это интерфейс, а не абстрактный класс.
rigorMortisникак. не нравится - пишите на c++
Скажите это моему работодателю
...
Рейтинг: 0 / 0
Сложное наследование классов
    #38979671
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилпишите на c++
Проще уволить того кто придумал такую иерархию ))
...
Рейтинг: 0 / 0
Сложное наследование классов
    #38979721
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и нафига такое нужно?
наследуйте Base-Org-Proc-Full и получится тоже самое, ну или в той последовательности, как вам нужно.
...
Рейтинг: 0 / 0
Сложное наследование классов
    #38979781
Фотография RocknRolla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что мешает использовать композицию классов processed & organized для получения full ?
...
Рейтинг: 0 / 0
Сложное наследование классов
    #38980054
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rigorMortisПривет
Затрудняюсь как сделать в DOT.NET. Схематически абстрактные классы выглядят так:

Код: plaintext
1.
2.
3.
4.
5.
6.
                                  
                                             base
                                            /    \
                                   processed      organized
                                            \    / 
                                             full

То есть абстрактные классы processed и organized наследуют от общего абстрактного класса base. Далее, full должен содержать реализацию processed и organized, но класс не может наследовать от более чем одного абстрактного класса. Как быть тут? Архитектура предполагает что существуют классы, содержащие реализацию или processed или organized по отдельности, а так же класс со всеми реализациями - full.

Так никак, нужно множественное наследование.

Во всех этих ущербных недоязыках, где его нет, нужно base, processed и organized делать интерфейсами,
а потом в full делать реализацию всего, что от них унаследовано (возможно, в виде делегации кому-то, но это неважно).
...
Рейтинг: 0 / 0
Сложное наследование классов
    #38980132
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Так никак, нужно множественное наследование.

Во всех этих ущербных недоязыках, где его нет, нужно base, processed и organized делать интерфейсами,
а потом в full делать реализацию всего, что от них унаследовано (возможно, в виде делегации кому-то, но это неважно).
Есть языки где вообще нет никакого наследования, С или Erlang или тот же SQL ;)
...
Рейтинг: 0 / 0
Сложное наследование классов
    #38980137
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
class Animal:
    def __init__(self, name):
        self.name = name

    def say(self):
        raise Error("I can't say")


class Cat(Animal):
    def meow(self):
        print("meow")


class Dog(Animal):
    def bark(self):
        print("woof")


class CatDog(Cat, Dog):
    def say(self, what):
        print("LOL I can say.", what)


catdog = CatDog('CatDog')
catdog.meow()
catdog.bark()
catdog.say('xyiz')
 
...
Рейтинг: 0 / 0
Сложное наследование классов
    #38980275
rigorMortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly MoskovskyИзопропилпишите на c++
Проще уволить того кто придумал такую иерархию ))
Особенно когда ничего толкового сказать не получается.
...
Рейтинг: 0 / 0
Сложное наследование классов
    #38980510
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rigorMortisОсобенно когда ничего толкового сказать не получается.
ответили - никак
...
Рейтинг: 0 / 0
Сложное наследование классов
    #38980525
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВMasterZivТак никак, нужно множественное наследование.

Во всех этих ущербных недоязыках, где его нет, нужно base, processed и organized делать интерфейсами,
а потом в full делать реализацию всего, что от них унаследовано (возможно, в виде делегации кому-то, но это неважно).
Есть языки где вообще нет никакого наследования, С или Erlang или тот же SQL ;)

да, и заметь, это все хорошие языки...
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Сложное наследование классов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]