标题: 关于继承的问题 [打印本页] 作者: 零敢 时间: 2014-1-7 18:46 标题: 关于继承的问题 最近看到两个Java基础题,自己搞了半天糊里糊涂的,看来自己Java基础还有很多理解不到位,希望高手给俺讲讲!
Java代码 收藏代码
class A {}
class B extends A {
void print() {
System.out.println(super.getClass().getName());
}
public static void main(String[] args) {
B b = new B();
b.print();
}
}
输出结果是什么?为什么?作者: tuanjie 时间: 2014-1-7 19:12
输出结果为B,super.getClass().getName(),涉及到反射,super.getClass()获得父类对象A的Class对象,再调用Class类里面的getName()方法,获得此 Class 对象所表示的实体(类)名称。
super关键字的使用:使用super关键字可以从子类中调用父类中的构造方法,普通方法和属性,在使用super调用父类的构造方法时,必须将super语句放在子类构造方法的首行作者: 小悠久 时间: 2014-1-7 19:15
getClass在Object中的定义为 public final native Class<?> getClass();既然定义为final说明这个方法可以继承但不能重写,既然没有重写,那么调用this.getClass()和调用