请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

父类下有多个子类,多个子类new后,父类构造函数都会先new

父类下有多个子类,多个子类new后,父类构造函数都会先new
老师你好,这种情况下,如何只让父类只new一次
因为我把一些公用的内容都放到父类的构造函数中,
现在多个子类在new的时候 父类中初始化的属性会跟随子类new的数量重复赋值,请问怎么解决这个问题呢

正在回答 回答被采纳积分+3

1回答

keviny79 2022-03-16 10:26:23
  1. 首先任何子类对象创建,必然导致父类构造函数被调用,这一点无法改变,要不然就不是继承了。

  2. 如果你希望定义一个所有子类对象都共有的属性,可以在父类中定义一个静态方法和静态属性,然后赋值就可以了

0 回复 有任何疑惑可以回复我~
  • 提问者 乔刻力 #1
    老师你好,我可以把父类按单例模式去改造吗,就是不私有构造函数
    每次子类去构造时,父类必先被构造,构造函数中先判断父类是否被构造,如果没有构造,那么new,如果构造了,那么返回一个构造好的类属性
    回复 有任何疑惑可以回复我~ 2022-03-21 07:57:22
  • keviny79 回复 提问者 乔刻力 #2
    那样不可以的,如果把父类写成单件模式,那么子类都无法继承了,因为单件模式的构造函数为私有的。 私有的构造函数不能在子类中用!
    回复 有任何疑惑可以回复我~ 2022-03-27 22:15:22
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信