Thread timer=new Thread(){
public void run(){
...
}
};
这里我们使用构造函数初始化一个对象。但与此同时,还有一些与构造函数对应的代码。
在调用构造函数 body 时,似乎正在定义它。不应该在Thread{}
区块内吗?
答案 0 :(得分:1)
在这里,您要声明匿名类,您在运行时提供run方法的实现。当你有意在单个地方使用实现时,它变得有利于你进行子类化
它与使用构造函数初始化对象无关。
答案 1 :(得分:0)
您可以创建一个新的类扩展Thread.class。
class MyThread extends Thread{
String name;
public MyThread(String name){
this.name = name;
}
@Override
public void run() {
super.run();
}
使用:
MyThread thread = new MyThread("hello");
thread.start();
答案 2 :(得分:0)
基本上你用新的Class(){}创建的是一个扩展了Class的子类;这是一个例子
Test.java
public static void main(String args[]) {
Tester tester = new Tester() {
@Override
public void TestingPurposes() {
super.TestingPurposes();
}
};
}
Tester.java
public class Tester {
public void TestingPurposes(){/*empty*/}
}
它基本上意味着创建扩展Tester的Child.java。
public class Child extends Tester {
@Override
public void TestingPurposes() {
super.TestingPurposes();
}
}
,主要方法应该是,
Tester tester = new Child();