php中类的继承在内存中的结构与不继承的结构问题
第一个问题:
1.假设有一个父类只有一个 name 属性,使用 public 关键字修饰;又写了个一个空的子类继承自这个父类(不要说继承了就不是空的了)。实例化这个子类。
class Father { public $name = 'name'; } class Child1 extends Father { }
2.有一个类只有一个 name 属性使用 public 修饰。实例化一个这个类。
class Child2 { public $name = 'name'; }
上面两种情况,不从外在形式上区分不同,在内存中的结构是相同的吗(仅从继承来的数据来看比如 $name)?如果不同,能否用通俗的语言解释下?
我试过继承静态属性时,以子类身份修改静态数据后,父子的这部分数据都会发生改变,那么关于静态属性方法是存储一份还是两份(有关联?)
第二个问题:
如果上面的结果是相同,那么是不是可以理解为继承就是将父类的属性方法拿来(public 的和 protected 的),添加到子类中,子类中继承来的属性方法相当于父类中的属性方法复制了一份,其实没有一种必然的联系,就像 =& 和 = 这两种赋值方式的感觉,它是属于 = 这种方式(不考虑复写和静态这些情况,我有点乱说不清,就是只考虑子类没有直接写出的而在父类中写出的那些属性方法,如果你清楚这个可以帮我解答下)。
虽然这个问题在实际开发过程中可能没什么用,但就是想知道,希望谁能帮我解答一下。