注意:
(1)当父类方法或者变量的权限为private时候,父类引用指向子类对象,调用父类的方法也会编译出错。
(2)private成员,使用super无法访问。
(3)super.class()使用陷阱,返回的并不是父类。
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());
}
}
说明:在test方法中,直接调用getClass().getName()方法,返回的是Test类名。这是由于getClass方法在Object中定义为final,子类不能覆盖该方法。所以,其实际调用的父类继承的getclass方法,等效调用super.getClass().getName()。如果想调用父类的名称,应该使用getClass().getSuperclass().getName()。
(4)this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this。这是由于this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。