ВУЗ:
Составители:
Рубрика:
92
public class A {
private string sA;
protected int fldA;
public A(int f)
{ fldA = f; sA = "X"; } // конструктор
// обычный метод
public void MethodA()
{ Console.WriteLine("метод MethodA класса A"); }
// виртуальный метод
public virtual void MethodC(int i)
{ Console.WriteLine("метод MethodC класса A"); }
}
А теперь опишем класс B, производный от класса A, методы которого
скрывают (модификатор new) или замещают (модификатор override)
методы базового класса:
public class B : A {
protected string fldB;
public B(string fB,int fA): base(fA)
{ fldB = fB; }
public void MethodB()
{ Console.WriteLine("новый MethodB класса B"); }
// перегрузка метода базового класса
public void MethodA(int i)
{ Console.WriteLine("перегруж. MethodA класса B"); }
// скрытие метода базового класса
public new void MethodA()
{ Console.WriteLine("скрытый MethodA класса B;");}
public override void MethodC(int i)
{ Console.WriteLine("замещен. MethodC класса B"); }
}
Объекты этих классов используем в методе Main() класса Program:
class Program {
static void Main(string[] args){
A a = new A(5); // описание объекта класса A
B b = new B("abc", 5); // описание объекта класса B
Console.WriteLine("*** Вызов методов объекта A");
a.MethodA();
a.MethodC(3);
Console.WriteLine(
"*** Вызов методов класса B через ссылку типа B");
b.MethodA(2); //вызов перегруженного метода
b.MethodA(); // вызов скрытого метода
b.MethodB(); // вызов нового метода
b.MethodC(3); // вызов замещенного метода
Страницы
- « первая
- ‹ предыдущая
- …
- 90
- 91
- 92
- 93
- 94
- …
- следующая ›
- последняя »
