Форум: "Прочее";
Текущий архив: 2010.10.17;
Скачать: [xml.tar.bz2];
ВнизПомогите разобраться с мат. частью. Найти похожие ветки
← →
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 вся ветка
Форум: "Прочее";
Текущий архив: 2010.10.17;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c