Java中通过构造方法给成员变量赋值的一些感悟

在继承出现之前,给一个类中的成员属性赋值有4种方式:
     1)显示初始化  2)构造方法  3)setXxx方法   4)在程序中创建对象后再进行赋值(成员属性没有被私有的情况)

当这个类被另外一个类继承后,即成为了父类,而且成员属性都被私有,这时有几种方式赋值呢?
    1、父类来赋值:父类仍然可以通过上述的方式给成员属性赋值
    2、子类来赋值:因继承了父类,相同的属性不会再去定义了,因此显示初始化显然没戏了;而setXxx方法呢得先创建子类的对象再去调用,创建对象就伴随着构造方法,因此也归结到构造方法这;

 1)通过子类的有参构造方法:
            ① 程序中创建对象new Son(含实参),默认调用父类的空参构造方法,这步没太大用,接下来涉及到这一步的就不再重复说了。之后调用自己的含参构造方法public Son(含形参),而子类含参构造方法中是无法通过this.name=name赋值给成员变量(因为父类私有,子类无法继承,无法直接访问),所以还是得调用父类的有参构造函数super(含形参)进行赋值,因为在程序中传入了实参,因此在这就不用再赋实参了。

2)通过子类的无参构造方法:
            ① 程序中创建对象new Son(),默认调用空参构造方法public Son(),然后在该构造方法中调用父类的含参构造函数super(含实参)进行赋值,然后这有一个细节需要理解,因为在程序中是没有传入具体实参的,因此在调用父类有参构造函数时得附上具体的实参;
            ② 程序中创建对象new Son(),默认调用无参构造方法public Son(),然后该构造方法里调用自己的含参构造函数this(含实参),在子类该含参的构造方法第一行调用父类的有参构造函数super(含形参),和之前一样,因为在程序中是没有传入具体实参的,因此在调用自己有参构造函数this(有参)时得赋上具体的实参;

  • 4
    点赞
  • 0
    评论
  • 11
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页

打赏

DeveloperYancc

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者