当前位置 : 主页 > 手机开发 > 其它 >

子类继承父类时构造函数的相关问题

来源:互联网 收集:自由互联 发布时间:2021-06-19
一、关键的这句话 1.子类创建对象时会调用父类的构造方法 2.采用suoer显示声明了就是调用这个显示声明的父类构造方法,没有默认调用父类的那个默认的空构造方法(父类中声明了带参

一、关键的这句话

1.子类创建对象时会调用父类的构造方法

2.采用suoer显示声明了就是调用这个显示声明的父类构造方法,没有默认调用父类的那个默认的空构造方法(父类中声明了带参数的构造方法默认的就要显示写出)。

摘抄网络:在创建子类对象时,会把父类里的成员变量和方法也加载进内存(因为要加载进内存,所以要看下这些数据是怎么初始化的,所以调用了父类的构造,仅此而已,并不是去创建了父类对象)

 

 

二、示例

父类People     子类Student

1.父类的属性和构造方法

 

 

 

2.子类的属性(新加了两个属性学号和分数)

子类的构造方法

 

 

3.测试类:创建4个Student对象

 

 

 

 三.运行结果

 

父类构造方法1:无参
student类构造方法1:无参数
null--0--0--0.0
————————————————————————————————
父类构造方法2:父类参数
student类构造方法2:仅父类参数
tom--21--0--0.0
————————————————————————————————
父类构造方法1:无参
student类构造方法3:仅student类参数
null--0--1--100.0
————————————————————————————————
父类构造方法2:父类参数
student类构造方法4:全参数
cat--21--2--100.0

 

四、总结

1.子类一般都有自己新加的属性,在实例化时可以选择给或不给新加的属性赋值。

2.不管你子类自己这个构造函数里给不给自己的新属性赋值,反正在实例化时父类的构造函数会先执行。

3.先找父类构造函数时,用super加参数指明了是父类哪个的就用这个指明的,找不到的话就用默认的(显示写出)。

网友评论