在内存机制中,父类和子类是占用同一块内存的,只不过子类在父类的基础上增加了自己的部分(包括数据成员和属性),这样一来就好理解了。子类是依附于父类的,先有父类再有子类。所以说一个子类对象的产生,必须先调用父类的构造函数产生一个父类实例,然后在这个实例基础上添加自己的部分。
而实际的运行机制,也正是这样的。
因为这样就很容易理解了,先调用父类的构造函数,再调用子类的构造函数。
而对于父类和子类里重写的方法的调用,关键要看:子类到底是否产生,如果子类产生了,子类改写了父类的方法,看似父类和子类各自有一个方法,其实它们在内存模型里占用的是同一块内存,子类方法会覆盖父类方法。
可以去goole或百度,有很多资料的,例如:http://dev.21tx.com/2005/03/24/12400.html
而实际的运行机制,也正是这样的。
因为这样就很容易理解了,先调用父类的构造函数,再调用子类的构造函数。
而对于父类和子类里重写的方法的调用,关键要看:子类到底是否产生,如果子类产生了,子类改写了父类的方法,看似父类和子类各自有一个方法,其实它们在内存模型里占用的是同一块内存,子类方法会覆盖父类方法。
可以去goole或百度,有很多资料的,例如:http://dev.21tx.com/2005/03/24/12400.html
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货