1.
class ParentClass {
2.
public int i =
10
;
3.
}
4.
5.
public class SubClass extends ParentClass {
6.
public int i =
30
;
7.
8.
public static void main(String[] args) {
9.
ParentClass parentClass = new SubClass();
10.
SubClass subClass = new SubClass();
11.
System.out.println(parentClass.i + subClass.i);
12.
}
13.
}
控制台的输出结果是多少呢?
20
?
40
?还是
60
?
变量,或者叫做类的属性,在继承的情况下,如果父类和子类存在同名的变量会出现什么情况呢?这就是这道
题要考查的知识点
——
变量(属性)的覆盖。
这个问题虽然简单,但是情况却比较复杂。因为我们不仅要考虑变量、静态变量和常量三种情况,还要考虑
private
、
friendly
(即不加访问修饰符)、
protected
和
public
四种访问权限下对属性的不同影响。
我们先从普通变量说起。依照我们的惯例,先来看一段代码:
Java
代码