Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Progi / Lesson 7 / 2 / 7.2 C#

.txt
Скачиваний:
29
Добавлен:
28.03.2015
Размер:
2.59 Кб
Скачать
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Nomer
{
protected double summa, dolg;
public Nomer(double s, double d)
{
summa = s;
dolg = d;
}
public double Numbersec()
{
return summa + dolg;
}
}

class Phone : Nomer
{
private double eti;
public Phone(double s, double d, double e) : base(s, d)
{
eti = e;
}
public double Numbersec()
{
return summa + dolg + eti;
}
}

abstract class Runner
{
protected string Fam;
public Runner(string str)
{
Fam = str;
}
abstract public double Totalsec();
}

class Mobile1:Runner
{
protected Nomer Rezult;
public Mobile1(String str, double s, double d) : base(str)
{
Rezult = new Nomer(s, d);
}
public override double Totalsec() // перегрузка абстрактной функции
{
return Rezult.Numbersec();
}
}

class Mobile2:Runner
{
protected Phone Rezult;
public Mobile2(String str, double s, double d,double e):base(str)
{
Rezult = new Phone(s, d, e);
}
public override double Totalsec() // перегрузка абстрактной функции
{
return Rezult.Numbersec();
}
}

class Combo:Runner
{
protected Nomer Rezult1;
protected Phone Rezult2;
public Combo(String str, double s1, double d1, double s2, double d2, double e) : base(str)
{
Rezult1 = new Nomer(s1, d1);
Rezult2 = new Phone(s2, d2, e);
}
public override double Totalsec() // перегрузка абстрактной функции
{
return Rezult1.Numbersec()+Rezult2.Numbersec();
}
}

class Program
{
static void Main(string[] args)
{
//Runner a = new Runner("Кузнецов"); Нельзя создать объект от абстактного класса
Mobile1 b = new Mobile1("Иванов", 2, 7);
Mobile2 c = new Mobile2("Петров", 2, 7, 8);
Combo d = new Combo("Сидоров", 2, 7, 2, 7, 8);
double m, n, k;
m = b.Totalsec(); // m=127
n = c.Totalsec(); // n=128
k = d.Totalsec(); // k=255

Console.ReadKey();
}
}
}
Соседние файлы в папке 2