Позднее связывание и виртуальные методы - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Возник вопрос по поводу позднее связывания в c#. В с++ п.с. можно организовать следующим образом:
Листинг программы
  1. class A:
  2. {
  3. public:
  4. virtual void f
  5. {}
  6. };
  7. class B:public A
  8. {
  9. public:
  10. virtual void f
  11. {}
  12. };
  13. void main()
  14. {
  15. A.a; //создание объекта а класса А
  16. B.b; //создание объекта b класса B
  17. A *p=&b;
  18. p->f(); //позднее связывание
  19. }
А как п.с. организовать в с#? По примерам сделала следующим образом:
Листинг программы
  1. public int func1(Person1 a)
  2. {
  3. // Используем позднее связывание
  4. object obj = Activator.CreateInstance(typeof(object));//Создает экземпляр указанного типа, используя конструктор, заданный для этого типа по умолчанию.
  5. return 0;
  6. }
  7. ...
  8. Person1 a = new Person1(s1, s2, s3, s4, s5, 2, 3, 2016);
  9. a.virt_func1(a);
Создала объект obj ,но от него никакого толка. Приведите пожалуйста пример толкового связывания,как в моем примере на с++

Решение задачи: «Позднее связывание и виртуальные методы»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace ConsoleApplication212
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             A a = new A(); //создание объекта а класса А
  10.             B b = new B(); //создание объекта b класса B
  11.             a = b; //присвоение переменной a объекта из b
  12.             a.F(); //вызов виртуального метода (будет вызван метод из B)
  13.             //
  14.             Console.ReadLine();
  15.         }
  16.     }
  17.  
  18.     class A
  19.     {
  20.         public virtual void F()
  21.         {
  22.             Console.WriteLine("This is method from A");
  23.         }
  24.     }
  25.  
  26.     class B : A
  27.     {
  28.         public override void F()
  29.         {
  30.             Console.WriteLine("This is method from B");
  31.         }
  32.     }
  33. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы