关于子类构造器中调用父类构造器的问题

public class Person{

    private String name;

    public Person(String name){

       this.name = name;

    }

}

 

public class Employee extends Person{

    public Employee(String name){

       super(name);

    }

}

 

public class EmployeeTest{

    public static void main(String[] args){

       Employee e = new Employee("briup");

    }

}

在这里Employee类继承Person类,

在EmployeeTest类的main方法中,new一个Employee对象,

那么Employee类中构造器中的super(name)操作有没有创建Person对象,如果没有创建,那么在Person类中的

name变量在内存中以什么形式存放?

谢谢!

 


问题补充:
我重点想问的是name属性在内存中是如何存放的,谢谢

name 属性!是属于Person类!
在堆中Person区域的 分配的内存

你要记住 java是面向对象的语言。
java的创始者灵感来自于 现实生活。

你的那段程序代码,意思是 在构造子类前, 先把父类构造。然后再是子类。
因为先有老爸才有你。

同样的 java 语法规范里。 一个类只能继承一个父类。
同理 一个儿子的DNA不可能 来自于 2个不同的父亲。

你结合自然规律 去思考java的语法用以 规范就能很清除的理解深刻了

Employee 是Person的子类型,所以严格来讲,是创建了Person类型的对象了,并且可以安全上塑造型(Person)employee。
name是继承自Person的,就像楼上说的不能说父亲有了DNA,儿子就不需要有自己的DNA了,儿子也有,它不是父亲的,如果儿子已经出生了(父亲和儿子这俩对象已经创建了),他俩的值不能互相影响的,不能说改了父亲的DNA,已出生的儿子的DNA也改了。
但是是和父亲一类的,如果儿子还没出生时改变父亲的DNA(改变类的定义),等儿子出生的时候自然拥有新的一套DNA了。
关键是你要区分类、对象的区别,再有弄清楚继承的意思。