Java 父类变量的初始化为啥是调用子类的方法
方法分派(method dispatch)的几个例子其实不太建议这样做的不讲实现的话 你可以这样想:子类的对象方法可能要基于父类的提供的变量环境 所以父类的构造函数要先于子类构造函数执行(如果重写构造函数的话 super()关键字必须出现在子类构造函数的第一行 在你的代码中之所以看不到是因为父类构造函数无参 编译器知道如何将代码植入到子类构造函数中)基于上一条 如果父类调用的函数能够正常运行的前提是环境已经初始化完毕 那就有问题了
■网友
【深入Java虚拟机】之四:类加载机制看初始化这一节
■网友
【Java 父类变量的初始化为啥是调用子类的方法】 “为什么Person、Father中对于j的初始化都调用了Son的fun()方法 ?”
那是因为你把fun()方法写成了public ,你加个private试试。。。
■网友
编译和运行的类型不一样,发生了多态编译的是父类属性,运行的是子类方法
推荐阅读
- dart这编程语言现在发展怎么样了,语法与Java,c#很相似,甚至更简洁
- Java工程师和C++工程师在工作上有啥区别哪个更适合自身发展
- 27岁,转行java的血与泪,该何去何从
- 怎样统计工程中未使用的java类
- 新互联网网站用Java还靠谱么对比Php,Python,Ruby的话
- 我想学java和安卓软件开发?
- 学计算机专业,java那些和网站开发选台式还是笔记本好
- JAVA设计思路
- 本人大专毕业一年,想要去培训,定了JAVAEE和安卓两个方向,应该学那个纠结,求帮助
- 从未接触过软件测试和java,可以学习主要是自学这两种其一吗
