и тип ссылки совпадают CA
using System; namespace MyDerriv1 { class Class1 { static void Main(string[] args) { // Тип объекта и тип ссылки совпадают CA var1; var1=new CA(); // Вызывается метод класса CA Console.WriteLine (var1.F1()); // Вызывается метод класса CA Console.WriteLine (var1.F2()); // Тип объекта - CB , а тип ссылки - CA CA var2; var2=new CB(); // Вызывается метод класса CA Console.WriteLine (var2.F1()); // Вызывается метод класса CB Console.WriteLine (var2.F2()); } } } // Класс CA using System; namespace MyDerriv1 { public class CA { public CA() { } public int F1() { return 1; } public virtual string F2() {return "Метод F2 класса CA";} } } // Класс CB using System; namespace MyDerriv1 { public class CB : MyDerriv1.CA { public CB() { } public int F1() {return 2; } // Переопределение виртуального метода F2 public override string F2() { return "Метод F2 класса CB"; } } } |
Листинг 16.1. |
Закрыть окно |
using System;
namespace MyDerriv1
{
class Class1
{
static void Main(string[] args)
{
// Тип объекта и тип ссылки совпадают
CA var1; var1=new CA();
// Вызывается метод класса CA
Console.WriteLine (var1.F1());
// Вызывается метод класса CA
Console.WriteLine (var1.F2());
// Тип объекта - CB , а тип ссылки - CA
CA var2; var2=new CB();
// Вызывается метод класса CA
Console.WriteLine (var2.F1());
// Вызывается метод класса CB
Console.WriteLine (var2.F2());
}
}
}
// Класс CA
using System;
namespace MyDerriv1
{
public class CA
{ public CA() { }
public int F1() { return 1; }
public virtual string F2()
{return "Метод F2 класса CA";}
}
}
// Класс CB
using System;
namespace MyDerriv1
{ public class CB : MyDerriv1.CA
{
public CB() { }
public int F1() {return 2; }
// Переопределение виртуального метода F2
public override string F2()
{ return "Метод F2 класса CB"; }
}
}