Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
 
vladis23
13 / 13 / 10
Регистрация: 25.05.2015
Сообщений: 516
#1

Абстрактный класс - Delphi

27.04.2016, 18:03. Просмотров 1557. Ответов 25
Метки нет (Все метки)

Создать абстрактный класс Person с полями фамилии, имени, года рождения. Создать производные классы: школьник со своим методом вывода информации - фамилия, имя, год рождения, класс и выпускник с методом вывода информации - фамилия, имя, год рождения, средний балл аттестата. Покажите как реализовать абстрактный класс с его потомками
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2016, 18:03
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Абстрактный класс (Delphi):

Создать абстрактный класс Товар
И так сам курсачь состоит из трех заданий: ПЕРВОЕ:создать абстрактный класс...

Создать абстрактный класс - млекопитающие
Задание : Создать абстрактный класс – млекопитающие. Определить производные...

Создать абстрактный базовый класс с виртуальной функцией
Добрый день! Помогите пожалуйста. Создать абстрактный базовый класс с...

Создать абстрактный класс Figure с методами вычисления площади и периметра, а также методом, выводящим информацию
Помогите пожалуйста,вот задания: 1. Создать абстрактный класс Figure с...

Реализовать абстрактный тип данных
Реализовать абстрактный тип данных Стек в виде класса с помощью динамических...

Класс: Нужно написать класс,который будет вычислять заданную функцию...
Нужно написать класс,который будет вычислять вот такую функцию y= \sqrt{1/x^n}...

25
harrybook
66 / 66 / 37
Регистрация: 27.04.2016
Сообщений: 254
30.04.2016, 14:33 #21
Куда нужно выводить информацию?

Добавлено через 2 минуты
Цитата Сообщение от vladis23 Посмотреть сообщение
constructor Tperson.create(s,n:string;y:word);
* begin
* *FSurname:=s;
* *Fname:=n;
* *Fyear:=y;
* * *// установка области используя метод MethodOutput:
* * *// Этот запрос будет удовлетворен только подклассом
* *MethodOutput;
* end;
В конструкторе *MethodOutput точно не нужен.
0
BOGG ART
576 / 444 / 146
Регистрация: 09.12.2013
Сообщений: 2,384
Записей в блоге: 2
30.04.2016, 15:18 #22

Не по теме:

Вам самому-то удобно читать такой код? Глаза сломать. Про одинаковые отступы не слышали? Удобная вещь.
Есть же и автоформатирующие штуки, которые сами расставят отступы.


Откуда такая любовь к Byte? Незачем там оно, берите Integer. А где дата вовсе TDateTime.
Имена параметров не для галочки придуманы, а для людей - вместо всяких безликих "d" надо нормальное "BirthDate".
А sr_ball это чего? AverageScore. А класс кстати будет Grade. MethodOutput?? Может лучше GetInfo()?
Почему Create сделан как Virtual, думаете в данном случае это действительно требуется?
0
vladis23
13 / 13 / 10
Регистрация: 25.05.2015
Сообщений: 516
30.04.2016, 15:35  [ТС] #23
BOGG ART, вот у меня компилируется код
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
unit abstract_class;
 
interface
uses SysUtils;
type
//класс Персона
 TPerson = class
 // элементы класса недоступны в не модуля в котором определен класс
 private
 FSurname:string; //поле фамилия
 Fname:string;    // поле имя
 Fyear:Word;      //  поле год рождения
 Vivod:string;
// защищенные элементы класса
 protected
  procedure MethodOutput;virtual;abstract; //реализация не нужна будет в потомках класса реализация
// Общедоступные
  public
    property Surname:string read FSurname write FSurname;
    property Name:string read Fname write Fname;
    property Year:Word read Fyear write Fyear;
    property Show:string read Vivod;
    constructor create (S,N:string; Y:Word); // конструктор с параметрами фамилие, имя, год рождения
     end;
     type
       TSchoolBoy = class(TPerson)
       private
         Fclass:Byte;
       public
         constructor create (k:Byte);
           procedure MethodOutput;override;
           property cls:Byte read Fclass write Fclass;
       end;
   type
   TGraduate = class(TPerson)
   private
     Fsr_ball:Extended;
     public
       procedure MethodOutput; override;
       constructor create (sr_ball:Extended);
       property srednee:Extended read Fsr_ball write Fsr_ball;
       end;
 
 
 
 
 
implementation
  constructor Tperson.create(s,n:string;y:word);
  begin
   FSurname:=s;
   Fname:=n;
   Fyear:=y;
     // установка области используя метод MethodOutput:
     // Этот запрос будет удовлетворен только подклассом
   MethodOutput;
  end;
 
 
{ TSchoolBoy }
 
constructor TSchoolBoy.create(k: Byte);
begin
Fclass:=k;
end;
 
procedure TSchoolBoy.MethodOutput;
begin
 
 
    Vivod:=FSurname+chr(32)+Fname+chr(32)+Inttostr(Fyear)+chr(32)+Inttostr(Fclass)+chr(32)+chr(13);
 
 
end;
 
{ TGraduate }
 
 
constructor TGraduate.create(sr_ball: Extended);
begin
Fsr_ball:=sr_ball;
end;
 
procedure TGraduate.MethodOutput;
begin
 
    Vivod:=FSurname+chr(32)+Fname+chr(32)+Inttostr(Fyear)+chr(32)+Floattostr(Fsr_ball)+chr(32);
end;
 
end.
Добавлено через 12 минут
BOGG ART, поле класс имеет отрицательное значение?, по мне так кажется что не имеет он
0
BOGG ART
576 / 444 / 146
Регистрация: 09.12.2013
Сообщений: 2,384
Записей в блоге: 2
30.04.2016, 17:57 #24
Причём тут отрицательное? Любой 4-хбайтный тип. Хоть знаковый, хоть беззнаковый. А что класть туда и что оно обозначает - ваша задача. Можно обозначать как -1 что исключили.
Ну компилируется и отлично. Ток не chr(32), а #13#10.
0
vladis23
13 / 13 / 10
Регистрация: 25.05.2015
Сообщений: 516
30.04.2016, 18:57  [ТС] #25
У меня получилось создать класс с абстрактным метод, благодаря некоторым вашим подсказкам и плюс единственный пример в Интернете
0
vladis23
13 / 13 / 10
Регистрация: 25.05.2015
Сообщений: 516
02.05.2016, 14:34  [ТС] #26
BOGG ART, спасибо за chr
0
02.05.2016, 14:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2016, 14:34
Привет! Вот еще темы с решениями:

Класс: Разработать класс, описывающий объект "Телефонный звонок"
Всем добрый вечер))) Пожалуйста помогите, очень прошу Разработать класс,...

Создать родительский класс "Прямоугольник" и к нему подключить дочерний класс "Куб"
Передомной была поставлена задача создать родительский клас прямоугольник и к...

Класс: Разработать абстрактный класс класс Point для задания координаты...
Всем привет, помогите пожалуйста решить задачу, я уже всю голову сломал, не...

Изменить класс для описания комплексных чисел на абстрактный класс
Нужно изменить на абстрактное классы, не понимаю как? В файле Class1.cs:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru