- /**
- * 多态练习
- */
- class Person {
- int i = 0;
- Person() {
-
- i++;
- }
- }
- class Student extends Person {
- Student() {
-
- i += 5;
- }
- }
- public class Demo {
- public static void main(String[] args) {
-
- Person p = new Student();
- p.i ++;
- System.out.println("p.i = " + p.i);
-
- Person p2 = new Person();
- System.out.println("p2.i = " + p2.i);
-
- }
- }
- /*
- 运行结果为:
- p.i = 7
- p2.i = 1
- 我想知道当Person p = new Student(); 执行后,:
-
- 加载Student类,运行Student构造方法{ 运行Person() → 构造函数{ i++;} → i += 5; } ,
-
- 这些动作实际上是不是仅仅把父类的成员变量int i 以及构造函数 Person() 拿过来只在Student的类中进行运算而非跑到Person类中进行?
- 不然为什么p2.i的打印结果是1呢?
- */
复制代码 |
|