Вниз
Скачать: CL | DM;

Скрыть метод в наследнике   Найти похожие ветки 

← →
SergP ©   (2005-12-14 04:15) [0]

допустим:
type A=class(B)

в классе B есть конструктор в public - секции.
Как его скрыть в наследнике (A), то есть перевести в private?


← →
Юрий Зотов ©   (2005-12-14 05:37) [1]

Никак. В объектной модели Delphi нельзя понизить видимость членов класса.

Но метод предка можно перекрыть. В том числе, и конструктор. Даже если он статический.


← →
Anatoly Podgoretsky ©   (2005-12-14 08:53) [2]

SergP ©   (14.12.05 04:15)  
Почему ты его хочешь скрыть, что то не так.


← →
SergP ©   (2005-12-14 09:37) [3]


> Anatoly Podgoretsky ©   (14.12.05 08:53) [2]
> SergP ©   (14.12.05 04:15)  
> Почему ты его хочешь скрыть, что то не так.


Да нет. Просто интересуюсь. Особой необходимости нет.
Вобщем в наследнике написан другой конструктор (с именем отличным от create (надеюсь так не запрещается делать)), а унаследованный create теперь не должен использоваться. и этот мой класс сделан в виде отдельного модуля, который возможно придется использовать в разных программах.


← →
evvcom ©   (2005-12-14 09:54) [4]


> а унаследованный create теперь не должен использоваться

так перекрой его, и в нем возбуди исключение с соответствующим текстом.


← →
ЮЮ ©   (2005-12-14 09:57) [5]

>а унаследованный create теперь не должен использоваться

1) в перекрытом Create высывать исключение - пусть помучаются те, кто привык к стандартеому имени коеструктора.

2) Задаться вопросом "А оно это надо?" и перекрыть Create вместо использования " конструктора, с именем отличным от Сreate"


← →
SergP.   (2005-12-14 10:31) [6]


>
> 2) Задаться вопросом "А оно это надо?" и перекрыть Create
> вместо использования " конструктора, с именем отличным от
> Сreate"


Так и сделаю... Просто писал ночью и спать сильно хотелось, поэтому и напридумывал всякой фигни...
К тому же нашел уже в коде несколько ошибок, которые ночью не заметил...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
14-1134044588
vajo
2005-12-08 15:23
2006.01.01
12 декабря. Красный день календаря?


2-1134262990
Officeman
2005-12-11 04:03
2006.01.01
Закрыть программу


11-1116038421
uli
2005-05-14 06:40
2006.01.01
разрешение экрана


1-1133555059
SergProger
2005-12-02 23:24
2006.01.01
Проверка Буфера


2-1134501411
Ксардас
2005-12-13 22:16
2006.01.01
Как получить...




   Наверх