Автор работы: Пользователь скрыл имя, 12 Марта 2014 в 04:50, лекция
Цель полиморфизма - использование одного имени для задания общих для класса действий. Для изменения метода необходимо перекрыть его в потомке, т.е. объявить в потомке одноименный метод и реализовать в нем нужные действия. В результате объекте-родителе и объекте-потомке будут действовать два одноименных метода, имеющие разную алгоритмическую основу. Концепция полиморфизма - идея «один интерфейс - множество методов». Полиморфизм позволяет манипулировать объектами различной степени сложности путем создания общего для них стандартного интерфейса для реализации похожих действий.
Пример 1. Объявление класса в программе. Постановка задачи
Пример 1. Объявление класса в программе. Программная реализация
21
Пример описания класса
TControl = class(TComponent)
private
FOnDblClick: TNotifyEvent;
FOnHouseDown: TMouseEvent;
FOnHouseHove: TMouseMoveEvent;
protected
property OnDblClick: TNotifyEvent read FOnDblClick write FOnDblClick;
property OnMouseDown: TMouseEvent read FOnMouseDown write FOnMouseDown;
property OnMouseMove: TMouseMoveEvent read FOnMouseMove write FOnMouseMove;
end;
22
Пример описания класса
type
TStudent = class
FAge : integer;
function GetAge : integer;
procedure SetAge(Value : integer);
property Age : integer read GetAge write SetAge;
end;
23
Пример 1. Объявление класса в программе. Постановка задачи
Пусть необходимо создать класс
фио, рост в cм, вес в кг.
24
Пример 1. Объявление класса в программе. Программная реализация
#include <stdio.h>
#include <string.h>
//описание структуры класса
class TPerson
{
private:
char fname[15];
int frost;
float fwes;
public:
char * Show() ;
void SetName (char* value);
void SetRost (int value);
void SetWes (float value);
} ;
25
Пример 1. Объявление класса в программе. Реализация методов класса
//реализация методов класса
char* TPerson::Show()
{static char S[100];
sprintf (S,"Это %s; его рост - %d см, вес - %3.2f кг", fname, frost, fwes);
return S; }
void TPerson::SetName(char* value)
{ strcpy(fname,value);
return; }
void TPerson::SetRost(int value)
{ frost=value;
return; }
void TPerson::SetWes(float value)
{ fwes=value;
return; }
26
4
Информация о работе Объектно-ориентированное программирование