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

Помогите разобраться с мат. частью.   Найти похожие ветки 

← →
Cerberus   (2010-07-16 11:49) [0]

Учу java. Возник такой вопрос.
При создании потока создается класс наследующий интерфейс Runnable. Но в конструкторе класс вызывается конструктор суперкласса. Откуда берется конструктор супер класса, если интерфейс только объявляет методы, но их не реализовывает.
class Test implements Runnable {
public Test(){
super();}
}


← →
Юрий Зотов ©   (2010-07-16 12:23) [1]

От суперкласса и берется - от Object.


← →
Cerberus   (2010-07-16 12:44) [2]


> Юрий Зотов ©   (16.07.10 12:23) [1]

Спасибо за ответ. А то я даже и не подумал про Object. То есть метод super() в принципе и не нужен? Просто в примерах о потоках его всегда вызывали.


← →
Компромисс   (2010-07-16 12:58) [3]

Даже если в конструкторе наследника нет вызова super(), super() все равно вызовется.
Но если в предке нет такого конструктора (без параметров), то будет ошибка компиляции и придется явно вставить вызов конструктора с параметрами.


← →
Юрий Зотов ©   (2010-07-16 13:16) [4]

Только вот что - если нужен Runnable, то, может быть, лучше наследоваться от класса Thread?


← →
makvell   (2010-07-16 13:44) [5]


> Юрий Зотов ©   (16.07.10 13:16) [4]
> Только вот что - если нужен Runnable, то, может быть, лучше
> наследоваться от класса Thread?

Чем лучше, если не секрет? :)


← →
Юрий Зотов ©   (2010-07-16 14:18) [6]


> makvell   (16.07.10 13:44) [5]

МОЖЕТ БЫТЬ лучше - вроде бы, я именно ЭТО написал?
А может быть и не лучше. От задачи зависит.


← →
makvell   (2010-07-16 14:42) [7]


> Юрий Зотов ©   (16.07.10 14:18) [6]
>
> > makvell   (16.07.10 13:44) [5]
>
> МОЖЕТ БЫТЬ лучше - вроде бы, я именно ЭТО написал?
> А может быть и не лучше. От задачи зависит.

Зачем так сразу в штыки воспринимать простой вопрос? :) Просто этот вопрос в контексте беседы больше воспринимается как совет, ну или мне так показалось. Вот и решил поинтересоваться, чем же оно таким лучше.


← →
Юрий Зотов ©   (2010-07-16 15:14) [8]

Это и был совет, все верно. Совет обратить внимание на то, что поток можно создать не одним, а 2 способами:

1. new MyThread();
2. new Thread(MyRunnable);

На самом деле, конструкторов у потока больше двух, но эти 2 - основные.

Какой способ лучше выбрать - зависит от задачи. Например, если нужен доступ к protected-секции потока, то первый способ сразу его дает. А если по логике работы программы целесообразно наследоваться от какого-то другого класса, то надо выбирать второй способ.


← →
makvell   (2010-07-16 15:37) [9]


> Юрий Зотов ©   (16.07.10 15:14) [8]
> Это и был совет, все верно. Совет обратить внимание на то,
>  что поток можно создать не одним, а 2 способами


Я почему-то воспринял его как совет использовать тред, а не ранабл. Как совет обратить внимание что способов создания несколько, тот пост не воспринимается, во всяком случае для меня :)

В любом случае, о чем это мы. Автор получил что хотел, а мы уже тут балуемся :)


← →
Юрий Зотов ©   (2010-07-16 15:58) [10]


> makvell   (16.07.10 15:37) [9]
> Как совет обратить внимание что способов создания
> несколько, тот пост не воспринимается, во всяком случае
> для меня :)

Это как раз потому, что пресловутое "может быть" Вы почему-то пропустили. Откуда и родилось [5]. Что и было отмечено в [6].



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

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



Память: 0.47 MB
Время: 0.005 c
11-1225708523
blackman2003
2008-11-03 13:35
2010.10.17
Меню на второй форме - потеря фокуса главного меню


2-1279523013
Meroveus
2010-07-19 11:03
2010.10.17
парсинг HTML?


2-1279881424
Vladimir
2010-07-23 14:37
2010.10.17
Позиция указателя мыши в RichEdit


3-1246438693
nachi
2009-07-01 12:58
2010.10.17
посчитать сумму параметров дочерних эл-тов_continue


15-1279224449
AKE
2010-07-16 00:07
2010.10.17
Какие есть книги по 3d графике?




   Наверх