8 回答
TA贡献1779条经验 获得超6个赞
你可以试试这样理解,继承是通过引用传递,子类是继承的父类,父类的属性和方法,那么内存里面就肯定父类的全部属性和方法。
然你在子类覆盖父类的方法,其实相当于把指针从父类的a()方法移动到子类的覆盖的a()来,实际父类的a()还是存在的,并不会真的从内存里面把父类的a()方法替换掉。
继承的引用传递:是指在内存中,父类的代码只有一份,如内存地址是0x000010,当子类去继承的时候,是直接从这个内存地址去读取父类的代码。而不会重新把代码拷贝一份到内存里面来。
TA贡献1840条经验 获得超5个赞
个人对继承的理解:
父类已有的方法,继承父类的子类是默认有的(方法和属性)。但是子类可以选择去重写父类的方法,这样的话,子类在调用这些被重写的方法的时候,就会优先去调用子类修改的方法,而如子类没有修改该方法的时候,就会默认调用父类的该方法。
对于楼主说的继承是引用传递,个人认为继承的时候默认这些方法和属性是指向父类的,但是在实际调用的时候,会去检测子类有没有重写父类的方法或者属性,如果有的话,实际调用就会指向子类重写的方法和属性,没有的话,依然是指向父类的方法和属性。
个人愚见...
TA贡献1843条经验 获得超7个赞
子类是继承的父类,父类的属性和方法,子类可以继承,但是不能改变父类,子类只有一个父类,但是,父类可以有很多子类,如果子类更改了父类的属性和方法那其本身不是就需要再次继承新的方法和属性?这就无解了。。。
TA贡献1831条经验 获得超10个赞
我继承父类的方法,相当于把父类的所有方法再我的类里面写了一遍,而和我现有的有冲突的方法,我不写进来就是了。就是说父类有内没有的就继承,父类有,你也有,就以你为准。
添加回答
举报