Q:子类能否继承父类的构造器?
A:子类不能继承父类的构造器,因为子类有自己的构造器。
Q:子类能否继承父类的私有成员(私有成员变量,私有成员方法)?
A:值得注意的是子类可以继承父类的私有成员(成员变量,方法),只是子类无法直接访问而已,可以通过getter/setter方法访问父类的private成员变量。也可以暴力去访问(可以通过反射调用)继承自父类的私有成员。
Q:子类能否继承父类的静态成员(静态成员变量,静态成员方法)?
A:子类是不能继承父类的静态成员的,子类只是可以访问(调用)父类的静态成员,父类的静态成员只有一份可以被子类共享访问。共享并非继承。
Q:子类可以继承多个父类吗?
A:java
是不允许使用 extends
去继承多个类的。java
如果出现多继承、父类中都有相同的属性和方法,子类如果使用父类的属性,无法确定是哪一个父类的属性。父类中如果有相同的方法,并且子类并没有覆盖该方法。子类调用父类的时候 无法判断是那个父类的方法。而java
中接口是可以多继承的。接口(jdk 1.8
以下版本)里面的方法没有具体实现,即使在多继承时出现父类中都有相同方法的情况也并无大碍。而且接口的成员变量都是static final
的,有自己静态域,只能供自己使用。
补充:jdk1.8
开始之后,接口中可以有静态方法,多继承时接口中存在同名的静态方法并不会冲突,原因是只能通过各自接口名访问静态方法。