Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Отчёт по лабораторной работе №5.
Вариант 2 - Телефон.
Цель: Изучить механизмы и особенности наследования в С#.
Постановка задачи:
1. Дополнить диаграмму классов UML.
2. Разработать иерархию классов.
UML диаграмма классов:
Описание программного модуля:
class Mobile : Phone // класс мобильных
{
// переопределяем свойство State
public override state_phone State
{
get
{
return base.State;
}
set
{
base.State = value;
}
}
// переопределяем метод DownTube
public override void DownTube()
{
// base.DownTube ();
Console.WriteLine("This class Mobile of method DownTube.");
}
// переопределяем метод UpTube
public override void UpTube(double time)
{
// base.UpTube (time);
Console.WriteLine("This class Mobile of method UpTube.");
}
// переопределяем метод Ring
public override void Ring(int number)
{
// base.Ring (number);
Console.WriteLine("This class Mobile of method Ring.");
}
public Mobile(): base("Cool") // конструктор класса Mobile и базового класса
{
// Console.WriteLine("This constructor default of Mobile.") ;
}
};
class Paystation : Phone // класс таксофонов
{
protected string Place; // место размещение
public void SetPlace(string pl) // изменить место
{
Place = pl;
}
public Paystation() // конструктор
{
// Console.WriteLine("This constructor default of Paystation.") ;
}
};
sealed class Siemens : Mobile // класс мобильных - Siemens
{
private string Buttons; // кнопки
// устанавливаем новое поведение для метода Ring
public new void Ring(int number)
{
Console.WriteLine("This class Siemens of method Ring in NEW.");
}
// переопределяем новое поведение для метода DownTube
public override void DownTube()
{
//base.DownTube ();
Console.WriteLine("This class Siemens of method DownTube.");
}
// иллюстрируем работу операторов as и is
public void RingAllPhone(object obj)
{
Phone phone = obj as Phone;
// as - получает объект указанного типа или null
if (phone != null)
{
phone.Ring(333);
}
// is - проверяет можно ли преобразовать
if (obj is Phone)
{
((Phone)obj).Ring(111);
}
}
public void SetButton(string button) // изменить кнопки
{
Buttons += button;
}
public Siemens() // конструктор
{
// Console.WriteLine("This constructor default of Siemens.") ;
}
};
Результат работы программы:
Выводы: