7、由SpringMVC DispatchServlet想到的子类父类(插播一个知识)
子类继承父类
A、子类实例化,堆中子类对象包含子类的属性、方法和父类的属性方法
B、如果有覆盖,则取子类的属性、方法
C、如果父类中有子类不包含的属性、方法,则子类对象中会包含这些父类的属性、方法
D、(最重要)子类对象没有包含一个父类对象,而仅仅包含父类的属性和方法。子类实例化的过程中,父类没有实例化,而是仅仅执行了父类的构造函数。这是很多高手都会犯的一个错误。认为子类对象包含父类对象,父类对象会被实例化。
子类实例化流程如下:
a、classloader加载子类和父类
b、执行父类构造方法和子类构造方法初始化属性
c、子类实例化并与父类属性方法合并
讲个笑话:如果子类继承了抽象类,是否父类需要实例化。
子类继承父类
A、子类实例化,堆中子类对象包含子类的属性、方法和父类的属性方法
B、如果有覆盖,则取子类的属性、方法
C、如果父类中有子类不包含的属性、方法,则子类对象中会包含这些父类的属性、方法
D、(最重要)子类对象没有包含一个父类对象,而仅仅包含父类的属性和方法。子类实例化的过程中,父类没有实例化,而是仅仅执行了父类的构造函数。这是很多高手都会犯的一个错误。认为子类对象包含父类对象,父类对象会被实例化。
子类实例化流程如下:
a、classloader加载子类和父类
b、执行父类构造方法和子类构造方法初始化属性
c、子类实例化并与父类属性方法合并
讲个笑话:如果子类继承了抽象类,是否父类需要实例化。