黑马程序员技术交流社区

标题: 关于super的疑惑 [打印本页]

作者: Walking Walking    时间: 2013-3-17 20:35
标题: 关于super的疑惑
本帖最后由 徐盼盼 于 2013-3-18 12:44 编辑

super表示的是父类的的应用,可是今天做练习的时候遇到一个问题如下
class Parent {
        
}

class CT extends Parent{
        
        public void printName(){
               System.out.println(super.getClass().getName());//输出结果为CT
        }

        public static void main(String[] args) {
               new CT().printName();
        }
}
调用super.getClass().getName()输出的结果是CT不是 Parent 这是为什么?不是应该是父类的类名吗?
作者: 沈子豪    时间: 2013-3-17 20:40
在printName方法中,直接调用getClass().getName()方法,返回的是CT类名
由于getClass()在Object类中定义成了final,子类不能覆盖该方法,所以,在
printName方法中调用getClass().getName()方法,其实就是在调用从父类继承的getClass()方法,等效于调用super.getClass().getName()方法,所以,super.getClass().getName()方法返回的也应该是CT。
作者: 我自信我很牛    时间: 2013-3-17 22:14
简答很给力,这个不错。。。




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