Позднее связывание и виртуальные методы - 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");
}
}
}