parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Родственные отношения классов

mashi 30.01.2006 14:57

Есть динамические классы fruit, apple, pear, cherry.

Конструктор класса fruit руководствуясь пришедшими параметрами создает объекты классов apple, pear, cherry.

Я хочу, создав объект класса fruit, пользоваться методами и свойствами классов apple, pear, cherry.
###########################################
@CLASS
fruit

@USE
apple.p
pear.p
cherry.p

@create[params]
# ...
$APPLE[^apple::create[$params.for_apple]]
$PEAR[^pear::create[$params.for_pear]]
$CHERRY[^cherry::create[$params.for_cherry]]
# ...
### End of @create[params]

@method_1[]
#...
### End of @method_1[]

@method_N[]
#...
### End of @method_N[]



###########################################
@CLASS
apple

@create[params]
# ...
### End of @create[params]

@method_1[]
#...
### End of @method_1[]

@method_N[]
#...
### End of @method_N[]


###########################################
@CLASS
pear

@create[params]
# ...
### End of @create[params]

@method_1[]
#...
### End of @method_1[]

@method_N[]
#...
### End of @method_N[]


###########################################
@CLASS
cherry

@create[params]
# ...
### End of @create[params]

@method_1[]
#...
### End of @method_1[]

@method_N[]
#...
### End of @method_N[]
Кажется мне что надо гдето грамотно объявить что-то базовое. Но что и где не пойму.


Сейчас юзаю так:
$FRUIT[^fruit::create[
	$.param_1[]
	$.param_2[]
#	...
	$.param_N[]
]]

# вызываю метод класса fruit
^FRUIT.method_1[]

# вызываю метод класса apple
^FRUIT.APPLE.method_1[]
# вызываю метод класса pear
^FRUIT.PEAR.method_1[]
# вызываю метод класса cherry
^FRUIT.CHERRY.method_1[]
Не пойму:
1. Какие методы каким классом наследуются?
2. Для чего нужно объявлять базовый класс?