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

本文探讨了在Java中,当一个类被另一个类继承成为父类后,成员属性赋值的方法。主要介绍了通过父类赋值的方式以及子类通过有参构造方法和无参构造方法来赋值的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在继承出现之前,给一个类中的成员属性赋值有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(有参)时得赋上具体的实参;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值