Общий раздел > Нововведения

Новый термин (почти тоже что и Наследование)

(1/5) > >>

HelpMePls:
Всем привет!

ВНЕС некоторые ИЗМЕНЕНИЯ: (*)
прим. не смотрите на пример с точки зрения ООП - протектед итд

НАСЛЕДОВАНИЕ:
1. пусть есть класс с атррибутами (Atta#) С1{Atta1,Atta2,Atta3}
2. пусть есть класс с атррибутами (Atta#,Attb#) С2{Atta1,Atta2,Atta3,Attb4} который является наследником класса С2.


у меня такой вопрос как назвать такую операцию "НАСЛЕДОВАНИЯ":
1. пусть есть класс с атррибутами (Atta#) С1{Atta1,Atta2,Atta3}
(*)2. пусть есть класс с атррибутами (Atta#) С2{Atta1,Atta2} который является наследником класса С1.

У наследников класса С1 никогда не будет новых аттрибутов только некоторые из его аттрибутов.

получается, что это наследование только несколько специфичное.
Представим, что у нас есть сущность и на основе ее нужно сделать другую, но только не со всеми ее признаками. (предполагается что остальные лишнии). И показать между ними (классами) связь "специфичного Наследования".


Просьба - помогите предложениями как бы эту связь обозвать.


(*) И ТАК нашел такое понятие как - ИЗБИРАТЕЛЬНОЕ (SELECTIVE) НАСЛЕДОВАНИЕ. это когда у класса наследуются только определенные аттрибуты. и уже далее у такого класса наследника не может быть других потомков.
и еще пишут что в COM нет избирательного наследования.

(*)вопрос кто сталкивался с таким понятием?

Galogen:

--- Цитата: HelpMePls от 23 Апреля 2007, 13:58:48 ---Всем привет!

--- Конец цитаты ---
И вам не болеть


--- Цитировать ---НАСЛЕДОВАНИЕ:
1. пусть есть класс с атррибутами (Atta#) С1{Atta1,Atta2,Atta3}
2. пусть есть класс с атррибутами (Atta#,Attb#) С2{Atta1,Atta2,Atta3,Attb4} который является наследником класса С2.

--- Конец цитаты ---
C2 наследник C2 ?


--- Цитировать ---у меня такой вопрос как назвать такую операцию "НАСЛЕДОВАНИЯ":
1. пусть есть класс с атррибутами (Atta#) С1{Atta1,Atta2,Atta3}
2. пусть есть класс с атррибутами (Atta#) С2{Atta1,Atta2} который является наследником класса С2.

--- Конец цитаты ---
Разница конечно есть, но не вижу смысла вопроса


--- Цитировать ---У наследников класса С1 никогда не будет новых аттрибутов только некоторые из его аттрибутов.
получается, что это наследование только несколько специфичное.
Представим, что у нас есть сущность и на основе ее нужно сделать другую, но только не со всеми ее признаками. (предполагается что остальные лишнии). И показать между ними (классами) связь "специфичного Наследования".

--- Конец цитаты ---
Вообще-то наследование есть обощение, зачем же делать обобщение относительно класса, чьи атрибуты наследуются частично? Это уже вовсе не наследование - а какое-то антинаследование.
Подумайте что такое КЛАССИФИКАЦИЯ (она ведь может быть и множественной)

Просьба - помогите предложениями как бы эту связь обозвать.
[/quote]

bas:
Это вообще-то спецефичность ЯП. Вроде бы в Си++ надо сделать Attr3 - protected (или private не помню точно) и все будет так как вам надо, связь тут не причем.

Galogen:

--- Цитата: bas от 23 Апреля 2007, 18:35:09 ---Это вообще-то спецефичность ЯП. Вроде бы в Си++ надо сделать Attr3 - protected (или private не помню точно) и все будет так как вам надо, связь тут не причем.

--- Конец цитаты ---
Насколько я понял, не наследуется только атрибут видимости private, а protected и package наследуется.

Т.е. перефразируя вопрос HelpMePls
Пусть есть класс С1{Atta1,Atta2,Atta3} и класс С2{Atta1,Atta2,Atta3,Attb4}, который наследуется от класс C1. Поскольку он наследует все Atta1,Atta2,Atta3, то можно сказать, что это видимости типа public protected package.

Второй случай
Пусть есть класс С1{Atta1,Atta2,Atta3} и класс С2{Atta1,Atta2} который является наследником класса С1.
Очевидно сигнатура класса С1{+Atta1,+Atta2,-Atta3}.

Думаю от языка зависит область видимости атрибута по умолчанию, т.е. если она явно не задана, то какая область видимости будет по умолчанию у атрибута или операции.

Тогда

--- Цитировать ---получается, что это наследование только несколько специфичное.

--- Конец цитаты ---
вполне нормальное каноническое наследование

--- Цитировать ---аждому члену класса можно установить его область доступа (access control level). Область доступа члена класса определяет участки кода, из которых к этому члену будет возможно обращаться. В большинстве объектно-ориентированных языков программирования поддерживаются следующие области доступа:
private (закрытый, внутренний член класса) — обращения к члену допускаются только из кода методов класса, в котором этот член определён. Любые наследники класса уже не смогут получить доступ к этому члену;
protected (защищённый, внутренний член иерархии классов) — обращения к члену допускаются из кода методов класса, в котором этот член определён, или из любых его классов-наследников;
public (открытый член класса) — обращения к члену допускаются из любого кода.

--- Конец цитаты ---

HelpMePls:

--- Цитата: Galogen от 23 Апреля 2007, 19:39:55 ---Насколько я понял, не наследуется только атрибут видимости private, а protected и package наследуется.

Т.е. перефразируя вопрос HelpMePls
Пусть есть класс С1{Atta1,Atta2,Atta3} и класс С2{Atta1,Atta2,Atta3,Attb4}, который наследуется от класс C1. Поскольку он наследует все Atta1,Atta2,Atta3, то можно сказать, что это видимости типа public protected package.

Второй случай
Пусть есть класс С1{Atta1,Atta2,Atta3} и класс С2{Atta1,Atta2} который является наследником класса С1.
Очевидно сигнатура класса С1{+Atta1,+Atta2,-Atta3}.

Думаю от языка зависит область видимости атрибута по умолчанию, т.е. если она явно не задана, то какая область видимости будет по умолчанию у атрибута или операции.

Тогдавполне нормальное каноническое наследование

--- Конец цитаты ---

А если от С1 такие будут наследники?

С3{Atta1,Atta2}
С3{Atta1,Atta3}
С4{Atta2,Atta3}

я хотел показать концепцию. Решение не нужно.

в UML есть расширения языка. вот мне и нужно такое расширение ввести. чтобы решить свою задачу.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 
Перейти к полной версии