/*
*先写一点点再说,之后具体来讲还得把Java编程思想拿回来参考
*/
网络上去查super关键字好多观点都在讲,super关键字是指向父类的一个对象的引用,代表一个父类对象,但经过如下代码测试会发现如果父类是抽象类,子类中依旧可以使用super关键字来调用父类中非private属性或方法。大家都知道抽象类是不能够实例化的,所以这使得我开始思考super关键字的真正含义(绝不是父类对象)。
/*
* 测试super关键字的小问题
*/
package august26;
public class Test2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Son s = new Son();
s.showInfo();
}
}
abstract class Father
{
protected void showInfo()
{
System.out.println("xx");
}
}
class Son extends Father
{
public void showInfo()
{
super.showInfo();
System.out.println("yy");
}
}
严格讲,this关键字是指向子类对象的引用,而super关键字只是关键字,它更像是指向父类的一个标示符。