dotSITE
Work in Murano Software. Вопросы/Ответы Учебник по ASP.NET
новости материалы решения форумы группы настройки/о проекте

Автор: Atilla
Тема: множественное наследование в C#
Дата: 8/31/2001 3:18:00 PM
Как известно, в C# нет множественного наследования реализации, но есть множественное наследование интерфейсов (собственно, как в Java), но если нельзя но очень хочется - то можно:
пусть есть 2 класса A и B:
class A
{
protected void F1() {}
};
class B
{
protected void F2() {}
};

вместо привычного
class C: A, B {}
можно написать:
class C
{
A a;
B b;
protected void F1(){a.F1();}
protected void F2(){b.F2();}
};
и вот оно вам - "множественное наследование"
(а на самом деле это, кажется, называется аггрегацией).
Теперь другой пример:
class A: Ia
{
// реализуем интерфейс Ia
};
class B: Ib
{
// реализуем интерфейс Ib
};
и вместо
class C: A, B {}
делаем:
class C: Ia, Ib
{
A a;
B b;
};

А теперь, как говорят в "Что?Где?Когда?",
ВНИМАНИЕ: ВОПРОС!
Можно ли где-нибудь в статическом конструкторе или еще где написать что-то вроде
C.Ia=a.Ia; C.Ib=b.Ib;
ну или что-то в этом духе, или мне надо переписывать ВСЕ методы этих интерфейсов:
protected void Ia.F1()
{
Ia ia=a as Ia;
if(ia!=null)
ia.F1();
}





 C# -- Программирование на C#
 множественное наследование в C# Atilla    8/31/2001 3:18:00 PM
 Re: множественное наследование в C# Harley    8/31/2001 3:38:00 PM
 Re[2]: множественное наследование в C#... Atilla    8/31/2001 3:58:00 PM
 Re[3]: множественное наследование в C#...... Andrew    8/31/2001 4:12:00 PM
 Re[4]: множественное наследование в C#......... Atilla    8/31/2001 4:25:00 PM
 Re[5]: множественное наследование в C#............ Andrew    8/31/2001 4:46:00 PM
 Re[6]: множественное наследование в C#............ Harley    9/1/2001 12:39:00 PM
 Re[7]: множественное наследование в C#............ Andrew    9/1/2001 7:13:00 PM
 Re[7]: множественное наследование в C#............ Atilla    9/4/2001 2:13:00 PM
 Re[3]: множественное наследование в C#...... Atilla    10/10/2001 2:02:00 PM


Контакт Реклама на сайте Спонсорам Веб мастерам

Лицензионное соглашение - © 2000-2012 dotSITE
Хостинг .NET предоставлен PARKING.RU
Поддержку сайта осуществляет Murano Software Inc., Offshore software development