黑马程序员技术交流社区
标题:
匿名创建线程对象的问题
[打印本页]
作者:
lwj123
时间:
2015-2-10 17:20
标题:
匿名创建线程对象的问题
new Thread() {// 不会报错
public void run() {
System.out.println("...");
}
}.start();
匿名方式创建线程,但是我记得老毕说的是,使用匿名方式创建的应该是接口或者是抽象类
格式:
new 接口或者抽象类(){
//覆写方法
}
问题:但是上面的创建实例Thread是普通的类而已啊,并不是我们所说的接口或者是抽象类,为什么也可以这样做?
作者:
零点Crazy
时间:
2015-2-10 17:29
这个你就不要纠结了,我查了下Java文档,Thread()类是我们创建线程时要写的, 必须覆盖其run()方法,其用法和抽象类和接口类似吧,这样使用在特定的情况比较方便一些,毕老师的意思应该是大部分情况下,不用太纠结这个,只要会用就好了
作者:
㏒假™面具
时间:
2015-2-10 18:14
毕老师说的是匿名内部类的前提是 继承或实现一个外部类或者接口! 匿名内部类是一个子类对象!
作者:
㏒假™面具
时间:
2015-2-10 20:53
㏒假™面具 发表于 2015-2-10 18:14
毕老师说的是匿名内部类的前提是 继承或实现一个外部类或者接口! 匿名内部类是一个子类对象! ...
new Thread() {// 不会报错
public void run() {
System.out.println("...");
}
}
复制代码
我的理解是这段代码就不是一个类,而是一个对象。
Thread t = new Thread() {// 不会报错
public void run() {
System.out.println("...");
}
}
复制代码
你可以试试这样写会不会报错!
作者:
许慎誉
时间:
2015-2-10 21:24
匿名内部类就是内部类的简化写法。
前提:存在一个类或者接口(这里的类可以是具体类也可以是抽象类)
格式:new 类名或者接口名() {重写方法;}
本质:是一个继承了类或者实现了接口的子类匿名对象
作者:
马铃薯
时间:
2015-2-10 22:15
学习学习!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2