建议思考的方式:
1、调试--模拟一些条件去调试,来探索确定知识点的原理--eg利用printIn 2、目的--做一件事前,先明确你的目的 3、分析--分析现有的东西(条件)能否达到你的目的,剖析,如果不能,另外找方法 4、定位--【定位问题的根源】。代表怎么当一个问题出现之后,你怎么定位它的问题出现在哪里,找到它,并且解决它
解决存在父子类关系时父类没有一个无参构造器的报错问题:
step1明确目的:寻找父子类关系存在时父类需要无参构造方法的原因 step2分析条件:已知事物都用上--已知有父类,子类,父子类关系 (方向:做什么动作,【预期效果是怎么样的,能够证明目的】。范围(定位)) step3模拟条件调试:做调试程序测试,在子类中创建主函数调用子类方法,使用断点跟踪程序运行步骤(或在程序可能运行到的地方插入提示语,即是在父、子类构造器方法和主函数开始第一步插入提示语eg"===1/2/3/4.."),结果证明程序在调用子类方法时需要使用到父类里的无参构造器 step4拓展:查找相关理论知识-- “如果父类没有无参构造方法,那么子类的构造方法会出现什么现象呢? 报错。 如何解决呢? A:在父类中加一个无参构造方法 B:通过使用super关键字去显示的调用父类的带参构造方法 C:子类通过this去调用本类的其他构造方法 子类中一定要有一个去访问了父类的构造方法,否则父类数据就没有初始化。” “因为子类继承父类之后,获取到了父类的内容(属性/字段),而这些内容在使用之前必须先初始化,所以必须先调用父类的构造函数进行内容的初始化. 这是java的一种规范,告诉我们如果子类实例化,那就需要先初始化父类的变量,例如私有的成员变量(通过父类构造方法),子类才不需要自己去实例化分类的变量。”