编程练习-继承中的问题

编程练习-继承中的问题

您好:在练习中我产生了四个问题:

  1. 子类中无参构造是否是必要的?

  2. 子类中的getter/setter方法是否只要对父类中未定义的属性增加getter/setter方法即可?

  3. ​子类中使用到的父类属性是否需要在属性中重新定义?即使后面使用了构造方法。

  4. 对父类中属性值的修改只能在构造方法中完成吗,在带参构造或者普通代码块中是否也是一样效果。

相关代码:

    // 在无参构造中实现对轮子属性值进行修改
public Tricycle(){
super.setWheel(3);
}



正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,

1、子类中无参构造是否是必要的?

答:建议添加上,使类更完整

2、子类中的getter/setter方法是否只要对父类中未定义的属性增加getter/setter方法即可?

答:并不是只对未定义的属性增加get/set,这里需要结合练习需求,例如:对属性进行判断时

3、子类中使用到的父类属性是否需要在属性中重新定义?即使后面使用了构造方法。

答:是不需要重新定义的

4、对父类中属性值的修改只能在构造方法中完成吗,在带参构造或者普通代码块中是否也是一样效果

答:是的,也是可以的,代码如下所示:

http://img1.sycdn.imooc.com//climg/5ffd0e17095d94bb07850463.jpg

祝学习愉快~

  • 慕仰2259325 提问者 #1

    那请问我这段代码

    (1)是不是不需要定义brand和color

    (2)因为构造时调用了父类构造方法,所以不需要重写get方法

    (3)可以用this.getColor()而不是super.getColor()吗


    public class Bicycle extends NonMotor {
       private String brand;
       private String color;
       // 在构造方法中调用父类多参构造,完成属性赋值
       public Bicycle(){};
       
       public Bicycle(String brand, String color){
       super(brand, color);
    }
    // 重写运行方法,描述内容为:这是一辆**颜色的,**牌的自行车。其中**的数据由属性提供
       public String work() {
       String str = "这是一辆"+this.getColor()+"颜色的,"+this.getBrand()+"牌的自行车。";
    return str;
    }
    }


    2021-01-12 20:10:16
  • 好帮手慕小脸 回复 提问者 慕仰2259325 #2

    同学你好,

    1、是的

    2、是的,理解是正确的

    3、是可以的

    祝学习愉快~

    2021-01-13 09:51:51
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师