关于super的学习

问题:
1.不是说super只能在构造函数里第一行调用吗?这里调用会产生什么副作用?
2.这里调用后super.put("msg","sss"),put进父类的集合了还是子类的集合?用什么方法能查看到put的过程,我尝试debug好像没看到过程
 
群友答:
1.是super的构造方法只能在子类构造方法里第一行调用, 因为得先保证父类成员初始化才能初始化子类成员, 而super的成员方法在哪里调用都可以 
2.set方法不是构造函数,所以不存在第一行的问题因为你调用的是supper.put所有肯定是父类集合
3.super() 这个只能在构造函数的第一样。你写的是 super.put(key, value)
4.网友的改进意见图:这个类写的有问题,每次调用ok方法都会创建一个新的test对象,应该写一个静态的变量变量保存创建的对象,这个对象等于null时调用new Test()创建一个新对象,否则直接使用这个变量

 

 结果是:子类和父类都调用了父类hashmap中的set,打印结果是一样的V值。



 


 
posted @ 2018-06-04 11:07  阿强是小兵  阅读(496)  评论(0)    收藏  举报