发布网友 发布时间:2022-04-26 23:47
共5个回答
热心网友 时间:2022-06-20 09:55
super 关键字是指定 调用父类方法.
因为你继承了 Thread 这个类.所以你的MyThread类有了getName() 方法.
Thread 类是线程类,里面有个 getName() 的方法,
此方法的意思是获取当前线程的名字。如果你没有自己设置,java虚拟机会给你自动分配一个。
以下是 java Api 文档的说明.
public final String getName() 返回该线程的名称。
多看看文档很有好处的,即使是中文的。
热心网友 时间:2022-06-20 09:56
这里super是多余的,删掉效果也一样
如果Myhread有重写getName方法,那么 super.getName()中的super才有作用
意思是调用父类中原始的那个getName方法,而不是本类中重写的那个追问但是程序中并没有指定父类的name属性值啊!但是运行结果为什么是Thread-0呢??
追答你没有指定,父类里面指定了。默认的就是这个
热心网友 时间:2022-06-20 09:56
在Java中,this通常指当前对象,super则指父类的。super.getName()就是从父类获取name的属性值。追问但是程序中并没有指定父类的name属性值啊!但是运行结果为什么是Thread-0呢??
追答你不是继承了Thread吗?就是他的。
热心网友 时间:2022-06-20 09:57
super()是java中的关键字,意思是继承父类中的一些属性或者方法。
热心网友 时间:2022-06-20 09:57
super.getNmae 是在Thread 多线程中实现的封装的方法,返回多线程的名字。追问但是程序中并没有指定父类的name属性值啊!但是运行结果为什么是Thread-0呢??
追答在多线程构造方法中,可以自己指定线程的名称,当然不指定就是按照Thread-0 一直下去,
Thread()分配新的 Thread 对象。 //你现在绝对是调用的这个方法在创建
Thread(Runnable target)分配新的 Thread 对象。 // 这个是Runnable
Thread(Runnable target, String name)分配新的 Thread 对象。 // 这个是接受Runnable,并附上名称
Thread(String name)分配新的 Thread 对象。 // 创建一个多线程,并为线程附上名称