Threadクラスのstartメソッドとrunメソッドはfinalメソッドではないため、Threadのstart/runメソッドをオーバーライドできます。例:isAlive()、stop()、suspend()、join()は最終メソッドです。したがって、Uはオーバーライドできません。
public class TempThread extends Thread
{
@Override
public synchronized void start() {
// TODO Auto-generated method stub
super.start();
}
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
}
public static void main(String[] args)
{
TempThread t = new TempThread();
t.start();
t.run();
}
}
しかし、あなたがオーバーロードについて尋ねたように
これらのメソッドのいずれかをオーバーロードできます。
元 :
public class TempThread extends Thread
{
@Override
public synchronized void start() {
// TODO Auto-generated method stub
super.start();
}
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
}
// ******** Overload **********
public synchronized void start(int i) {
// TODO Auto-generated method stub
super.start();
}
// ********* Overload **********
public void run(int i) {
// TODO Auto-generated method stub
super.run();
}
public static void main(String[] args)
{
TempThread t = new TempThread();
t.start();
t.run();
}
}
注:オーバーライドとオーバーロードの違いを確認してください。これにより、問題についての理解が深まります。