重写的注意事项:
1、子类方法覆盖父类方法时,子类权限必须大于等于父类权限。
2、静态方法只能覆盖静态,或被静态覆盖 。
什么时候使用重写操作:
当对一个类进行子类的扩展时,子类需要保留父类的功能声明,但是要定义子类中该功能的特有内容时,就使用重写操作完成。
为什么子类实例化的时候要访问父类中的构造方法:
因为子类继承了父类,获取了父类中的类容(属性),所以在使用父类内容之前要先看父类是如何对自己的内容进行初始化的。
如果父类中没用定义空参数构造函数,那么子类的构造函数必须用super明确调用父类中哪个构造函数.
注意:super语句必须定义在子类构造方法第一行。
一个对象的实例化过程:
Person p=new Person();
1、JVM会读取指定路径下的Person.class文件并加载进内存,并会先加载Person的父类
2、在堆内存中开辟空间,分配内存地址 。
3、并在对象空间中,对对象中的属性进行默认初始化。
4、调用对应的构造函数进行初始化。
5、在构造函数中第一行会先调用父类中构造函数进行初始化。
6、父类初始化完毕后,在对子类的属性进行显示初始化。
7、在进行子类构造函数的特定初始化。
8、初始化完毕后,将地址值付给引用变量。