黑马程序员技术交流社区

标题: 为什么这里用this和super结果都是Test? [打印本页]

作者: Sunday    时间: 2014-4-16 00:23
标题: 为什么这里用this和super结果都是Test?
  1. import java.util.Date;

  2. public  class Test extends Date{

  3. public static void main(String[] args) {

  4. new Test().test();

  5. }

  6. public void test(){

  7. System.out.println(super.getClass().getName());//为什么这里用this和super结果都是Test?
  8.         }
  9. }

  10. //如果想获得Date怎么办??
复制代码

作者: ^o(孤8o|狼i¤F    时间: 2014-4-16 00:31
import java.util.Date;

public  class Test extends Date{

public static void main(String[] args) {

new Test().test();

}

public void test(){

System.out.println(super.getClass().getName());//为什么这里用this和super结果都是Test?
        }
}

this
  this关键字:表示本类对象的引用
  哪个对象调用的,this就表示哪一个对象
  this用来区分成员变量和局部变量重名的情况
  this()语句,在构造方法之间调用
  this调用别的方法
然而 super 表示 子类引用父类的对象或者方法 在你的程序当中 getclass 是活获得当前类的类名 然而  你


System.out.println(super.getClass().getName());//为什么这里用this和super结果都是Test?

是在test这个类当中所以 输出结果是 Test
作者: 曹冬明    时间: 2014-4-16 01:34
本帖最后由 曹冬明 于 2014-4-16 01:35 编辑
  1. <div class="blockcode"><blockquote>import java.util.Date;

  2. public  class Test extends Date{

  3. public static void main(String[] args) {

  4. new Test().test();

  5. }

  6. public void test(){

  7. System.out.println(Test.class.getSuperClass().getName());//为什么这里用this和super结果都是Test?
  8.         }
  9. }

  10. //如果想获得Date怎么办??
复制代码

这样,你就可以得到父类名了,首先要获取本类的Class对象

作者: 坏米饭    时间: 2014-4-16 10:06
  1. import java.util.Date;

  2. public  class Test extends Date{

  3. public static void main(String[] args) {

  4. new Test().test();

  5. }

  6. public void test(){

  7. System.out.println(this.getClass().getSuperclass().getName());//这句你应该懂吧?
  8. System.out.println(super.getClass().getName());//这句等于是调用父类的getClass()方法,但是由于多态的存在,所以实际执行的还是this的getClass()方法,因为每个类都有getClass()方法。结果当然是本类
  9.         }
  10. }
复制代码
亲测可行

作者: 四川男人    时间: 2014-4-16 10:15
getClass()获取当前类,this代表当前类对象,super代表父类对象,
this.getClass().getSuperclass().getName()获取父类
super.getClass().getName()获取当前类




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2