Конструкторы при наследовании

20 views
Skip to first unread message

Leonid Vygovskiy

unread,
Nov 26, 2010, 2:50:31 PM11/26/10
to scala-...@googlegroups.com
Всем привет.

В java я могу сделать так:

class A {
  A (int x) {}
  A (String z) {}
}

class B {
  B (int x) { super(x) }
  B (String z) (super(z) }
}

А есть возможность сделать нечто подобное в Scala?

с уважением, Выговский Леонид.

Николай Митропольский

unread,
Nov 26, 2010, 3:08:00 PM11/26/10
to Scala в России
Насколько я знаю прямого способа это сделать в Scala нет, так как
фактически у всех классов только один конструктор - primary, и
конструктор предка может вызываться только из primary-конструктора. Но
вы можете выкрутиться костылями в виде init-методов)

Leonid Vygovskiy

unread,
Nov 26, 2010, 3:15:08 PM11/26/10
to scala-...@googlegroups.com
Под init-методами имеется ввиду это что-то специфичное для Scala, или просто замена конструкторов статичными методами?
Просто иерархия классов не моя, я лишь делаю наследование.

с уважением, Выговский Леонид.

26 ноября 2010 г. 23:08 пользователь Николай Митропольский <nicolaymi...@gmail.com> написал:
--
Страница рассылки: http://groups.google.com/group/scala-russian

Николай Митропольский

unread,
Nov 26, 2010, 3:32:56 PM11/26/10
to Scala в России
Имеется ввиду замена конструкторов в классе A на нестатические методы,
которые будут заниматься инициализацией. Если у вас нет возможности
изменять класс A, то боюсь что тривиальных методов больше нет. Только
если сделать два разных класса вместо B или заменить наследование на
агрегацию (что мне больше нравится, но не факт, что подойдет) .

On 26 ноя, 23:15, Leonid Vygovskiy <Leonid.Vygovs...@gmail.com> wrote:
> Под init-методами имеется ввиду это что-то специфичное для Scala, или просто
> замена конструкторов статичными методами?
> Просто иерархия классов не моя, я лишь делаю наследование.
>
> с уважением, Выговский Леонид.
>
> 26 ноября 2010 г. 23:08 пользователь Николай Митропольский <

> nicolaymitropol...@gmail.com> написал:

Reply all
Reply to author
Forward
0 new messages