When you do this, you automatically get all the fields and methods in the base class
---摘自《Thinking in Java》 Reusing class一章。
当继承时,会自动得到基类中的所有的域和方法。
关于这句话如何解读?
1、private修饰的成员能够继承下来吗?
2、final修饰的成员能继承下来吗?
3、static修饰的成员能继承下来吗?
4、构造方法呢?
我自己找到答案了。谢谢两位回答的网友。
书中说的是没有错的。域和方法都会被继承。
在第四版《Thinking in Java》第8.2.4及8.2.5节有相关的回答。
域和方法都会被继承。
对于方法来说,只有非private,或者非final方法(private 方法自动是隐式final的)才能被覆盖。
对于域:最佳实践,我们会将域设置为private型的,并提供公开的get/set方法。但是从语法角度来说,可以设置为包,public,protected。任何域访问操作都将由编译器解析,因此不是多态(后期绑定)的。如果在子类中要访问基类版本的域,需要显式的使用super.field才能访问。
对于静态的,因为和域一样,是前期绑定,所以直接用类名.staticMember访问就行了。
除了用private修饰的成员, 其他都可以继承;
final成员能继承,但不能修改;
static成员能继承,而且能修改;
构造方法也是可以继承的