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

Progi / Lesson 7 / 2 / 7.2 Java

.txt
Скачиваний:
34
Добавлен:
28.03.2015
Размер:
2.84 Кб
Скачать
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package laba2;

/**
*
* @author st
*/

import java.util.Scanner;


import java.io.*; // подключение библиотеки ввода-вывода на java
import java.lang.Math.*;

class Record
{
protected int first;
protected double second;
public Record() // конструктор без параметров
{
first=0;
second=0;
}
public Record(int f,double s) // конструктор с параметрами
{
first=f;
second=s;
}
public double Summa()
{
return first*second;
}
}

class Sprint extends Record
{
private double kurs;
Sprint()
{
first=0;
second=0;
kurs=0;
}
Sprint(int f,double s,double k)
{
super(f,s); // вызов конструктора базового класса с параметрами
kurs=k;
}
public double Summa() // перегрузка с учетом округления
{
double k;
k=first*second*kurs;
return k;
}
}

abstract class Runner
{
protected String Fam;
public abstract double TotalSum();
public Runner(String str) // конструктор с параметрами
{
Fam=str;
}
}

class Stayer extends Runner
{
protected Record Rezult; // 1 бег на длинную дистанцию
public double TotalSum() // перегрузка абстрактной функции
{
return Rezult.Summa();
}
Stayer(String str,int f,double s)
{
super(str); // вызов конструктора базового класса
Rezult=new Record(f,s);
}
}

class Sprinter extends Runner
{
protected Sprint Rezult; // 1 бег на короткую дистанцию
public double TotalSum()
{
return Rezult.Summa(); // перегрузка абстрактной функции
}
Sprinter(String str,int m,double s,double k)
{
super(str);
Rezult=new Sprint(m,s,k);
}
}

class Combine extends Runner
{
protected Record Rezult1; // бег на длинную дистанцию
protected Sprint Rezult2; // бег на короткую дистанцию
public double TotalSum()
{
return Rezult1.Summa()+Rezult2.Summa(); // сумма 2 результатов
}
Combine(String str,int f1,double s1,int f2,double s2,double d)
{
super(str);
Rezult1=new Record(f1,s1);
Rezult2=new Sprint(f2,s2,d);
}
}

public class Laba2
{
public static void main(String[] args)
{
// Runner a=new Runner("Кузнецов"); нельзя создать объекты абстрактного класса
Stayer b=new Stayer("Кошелёк_1",2,7);
Sprinter c=new Sprinter("Кошелёк_2",2,7,8);
Combine d=new Combine("Два_кошелька",2,7,2,7,8);
double m,n,k;
m=b.TotalSum(); // m=127
n=c.TotalSum(); // n=128
k=d.TotalSum(); // k=255
}
}
Соседние файлы в папке 2