Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1274281038
Vass
2010-05-19 18:57
2010.10.17
Узнать Top предыдущего элемента в списке TList


2-1279861058
linuxoid
2010-07-23 08:57
2010.10.17
как передать данные массива с основного потока в параллельный?


15-1279271125
12
2010-07-16 13:05
2010.10.17
процедура в oracle. Подскажите


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


2-1280224684
Кондрат Воронов
2010-07-27 13:58
2010.10.17
Работа с объектами





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский