![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Есть класс родитель и класс наследник.
Необходимо сделать разныеконструкторы у этих классов. Как это можно сделать в ActionScript? Пример: public class ParentClass{
public function ParentClass(params_for_parent){
code_for_parent;
}
}
public class ChildClass extends ParentClass{
public function ParentClass(params_for_child){
code_for_child;
}
}
А как этот default constructor сделать если перегрузки методов нет? Либо как сделать в дочернем класе так, чтобы небыло необходимости вызывать super()? Последний раз редактировалось Crazy Driver; 08.05.2008 в 14:24. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
|
|
|||||
|
Такое не прокатило: таже ошибка.
А вот так всё получилось: Спасибо, __etc! |
|
|||||
|
Решение конечно действенное, но выглядит, мягко говоря, странно.
Что это, баг флекса? Или в других IDE флеша тоже самое? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Конструктор суперкласса всегда вызывается, если его вызов не указан.
|
|
|||||
|
Да, но в данном случае вызывается пустой конструктор (без параметров и без тела), которого нет в супер классе. Причём я непонимаю почему такую возможность не сделали "легальной" и использовать её нужно в такой вот извращённой форме.
|
|
|||||
|
стервочка (я мужик)
|
потому что инициализация класса, на то и инициализация, что бы требовать аргументов. если они нужны для инициализации, значит они нужны для не родимой, и объект без них будет создан неправильно. чё не понятного? это же как 2х2. если требуют - значит надо.
|
|
|||||
|
Цитата:
У меня от одного класса наследуются 4 других, у которых практически одинаковая инициализация, которая и описана в конструкторе суперкласса. А один дочерний класс не нуждается в такой инициализации. В других языках (таких как Java, C++ и т.п.) подобная задача решается очень просто с помощью перегрузки конструктора, т.е. 2 конструктора у супер класса, принимают разное количество параметров. Здесь же, раз нет возможности перегрузить конструктор, хотелось бы хотя бы переопределить его - вот это как 2х2. А то, что это сделать можно только через условие (1>2) или что-нибудь в этом духе - это вообще бред (не в одном другом языке подобных извращений не встречал). |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|