我直接在子类中创造带参构造,不去调用父类的构造方法不是也可以吗?

来源:5-2 编程练习

眼睛眯起来

2020-05-27 23:04:37

http://img.mukewang.com/climg/5ece80f809d329e106270188.jpg

http://img.mukewang.com/climg/5ece81280902392806770146.jpg

我直接在子类中创造带参构造,不去调用父类的构造方法不是也可以吗?  super();的作用是什么,调用父类的带参构造么?这两种方式的区别呢?

写回答

2回答

好帮手慕阿园

2020-05-28

同学你好

可以在子类中创建带参构造,直接通过this.setColor给属性赋值;只不过题目中要求是调用父类的构造方法,完成属性赋值,所以使用 super(color,userName); 

super()的作用是子类的构造方法调用父类的构造方法;

这两种区别是 第一种调用的是子类的构造方法,第二种是调用父类的构造方法 。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


0

苍星乱舞

2020-05-27

你这样写不报错吗?不是重复定义了构造器吗?

实例化对象时,要一步步来先从父类的结构逐步构造至子类的对象

你上面那行没显示写调用  super();但还是实际调用了

你可以在  Taxi的父类无参构造器中加一句输出,只保留上面的那行构造器,你会发现是有输出的。

0

0 学习 · 11489 问题

查看课程