A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王瑞 中级黑马   /  2013-3-23 14:51  /  1927 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王瑞 于 2013-3-23 18:02 编辑
  1. class Test extends Thread
  2. {
  3.         //private String name;
  4.         Test(String name)
  5.         {
  6.                 //this.name = name;
  7.                 super(name);//利用父类中的函数,返回name值。
  8.         }
  9.         public void run()
  10.         {
  11.                 for(int x=0; x<60; x++)
  12.                 {
  13.                         System.out.println(this.getName()+" run..."+x);//这里,Test 明明继承了Thread,而父类中才有getName(),为什么用this.getName()呢?
  14.                                                 //要用也应该用super.getName()吧?想了一会没找到答案,求解!
  15.                                 }
  16.                 }
  17. }
复制代码

点评

如果你的问题已经得到解决,请及时将主题改为[已解决],如果还有问题请继续追问,谢谢  发表于 2013-3-23 15:58

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

7 个回复

正序浏览
当然可以这样写了,因为Test继承了Thread类,所以也就继承了getName()的方法,
回复 使用道具 举报
直接getname当然可以,他默认会有this.的 即使你不写

点评

感谢,我再回去研究一下~~~  发表于 2013-3-23 15:09
回复 使用道具 举报
blackcaismine 发表于 2013-3-23 15:00
thread中的getName是final方法,继承的子类可以直接继承这个方法,所以用this.getName可以直接调用
final方 ...

意思是如果直接用getName()能行吗?
回复 使用道具 举报
本帖最后由 blackcaismine 于 2013-3-23 15:08 编辑

thread中的getName是final方法,继承的子类可以直接继承这个方法,所以用this.getName可以直接调用
final方法:不允许任何从此类继承的类来覆写这个方法,但是继承仍然可以继承这个方法,也就是说可以直接使用。
但是即便没有final ,this.getname也可以调用父类的方法,只要子类没有复写的话

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
既然Test继承了Thread父类,那么他就拥有了父类的GetName()所以在调用本类的方法用this.GetName();

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
张文星 发表于 2013-3-23 14:54
子类在继承父类的时候可以获得父类的所有公共方法和属性,还有保护型的,在一个包中的话还可以获得友元的。 ...

不知道是不是我没学到的,可不可以讲的更详细一点?
回复 使用道具 举报
子类在继承父类的时候可以获得父类的所有公共方法和属性,还有保护型的,在一个包中的话还可以获得友元的。具体参看java基础
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马