Позднее связывание и виртуальные методы - C#
Формулировка задачи:
Добрый день. Возник вопрос по поводу позднее связывания в c#. В с++ п.с. можно организовать следующим образом:
А как п.с. организовать в с#? По примерам сделала следующим образом:
Создала объект obj ,но от него никакого толка. Приведите пожалуйста пример толкового связывания,как в моем примере на с++
Листинг программы
- class A:
- {
- public:
- virtual void f
- {}
- };
- class B:public A
- {
- public:
- virtual void f
- {}
- };
- void main()
- {
- A.a; //создание объекта а класса А
- B.b; //создание объекта b класса B
- A *p=&b;
- p->f(); //позднее связывание
- }
Листинг программы
- public int func1(Person1 a)
- {
- // Используем позднее связывание
- object obj = Activator.CreateInstance(typeof(object));//Создает экземпляр указанного типа, используя конструктор, заданный для этого типа по умолчанию.
- return 0;
- }
- ...
- Person1 a = new Person1(s1, s2, s3, s4, s5, 2, 3, 2016);
- a.virt_func1(a);
Решение задачи: «Позднее связывание и виртуальные методы»
textual
Листинг программы
- using System;
- namespace ConsoleApplication212
- {
- class Program
- {
- static void Main(string[] args)
- {
- A a = new A(); //создание объекта а класса А
- B b = new B(); //создание объекта b класса B
- a = b; //присвоение переменной a объекта из b
- a.F(); //вызов виртуального метода (будет вызван метод из B)
- //
- Console.ReadLine();
- }
- }
- class A
- {
- public virtual void F()
- {
- Console.WriteLine("This is method from A");
- }
- }
- class B : A
- {
- public override void F()
- {
- Console.WriteLine("This is method from B");
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д