在学习《Java核心技术卷1》的继承章节中,在p159有一句注释:“声明为私有的类成员不会被这个类的子类继承”。
用Manager类继承Employee类这个例子来解释,学者以为:“子类Manger类拥有父类的私有字段和方法却无法访问和调用,这不能说子类继承了这些字段与方法,这是仅存在于子类拥有的层面(体现在内存上可能是会为这些字段开辟空间但不可直接访问)。”
那如果我在子类中希望访问拥有的超类的方法,那将用super这个特殊的关键字来给编译器指示调用超类的方法。它的用法几乎和this一样,但是却和this有着本质的差别,this在类的方法中是一个隐式参数,它用于引用当前调用方法的对象(把这个对象引用拷贝一份)。而super仅仅是指示编译器调用超类的方法。
super关键字还有一个重要的功能。在构造子类对象时,使用构造器是必然的。那么在子类中那些不可访问的字段怎么访问呢?我们可以用在子类构造器的第一行中使用 super(可选参数);语句来进行初始化。然后对子类中特有的字段进行初始化。这样子类就可以成功的构造了。
先写到这里,有误的部分还请不吝赐教