一、 继承条件下的构造方法调用 1、运行 TestInherits.java 示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用代码是否是第一句,影响重大! 源代码: package lianxi7; ...
分类:
其他好文 时间:
2017-11-10 12:48:00
阅读次数:
229
06-继承与多态 实验性问题总结 一、为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不能反过来? 子类是从父类继承来的,所以想用子类创建对象的时候,必须要先建立父类的对象,子类有父类的属性和方法;就要给父类的属性分配内存空间,在创建对象的时候如果父类中的数据需要初始化, ...
分类:
其他好文 时间:
2017-11-10 01:46:48
阅读次数:
215
因为子类继承于父类,构造方法相当于对象初始化,只有父类先完成初始化,子类对象才能执行自己的初始化。子类在进行初始化的时候会默认调用父类的构造,所以不能反过来。 2 动手动脑 代码: 结果截图: 3.子类与父类间的类型转换 d=m,d=c,c=(Cat)m不能运行 m=d,子类对象可以直接赋给基类变量 ...
分类:
其他好文 时间:
2017-11-10 01:38:47
阅读次数:
162
1. 代码: 2. . 判断: 第二个运行错。 第四个编译错误。 结果: 第二、四个编译错误。 第五个运行错误。 原因: m=d; //编译正确,因为子类对象可以直接赋给基类变量。 d=m; //编译错误,基类对象要赋给子类对象变量,必须执行类型转换(子类对象变量=(子类名)基类对象名;) d=(D ...
分类:
其他好文 时间:
2017-11-10 00:12:03
阅读次数:
141
1.为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不能反过来? 答:由于子类是继承父类的,所以想用子类创建对象时,必须先创建父类的对象,这样子类才能有父类的属性和方法。在创建对象时如果父类的数据需要进行初始化,那么就需要调用父类的构造函数。不能反过来,因为父类不知道子类 ...
分类:
其他好文 时间:
2017-11-09 19:49:58
阅读次数:
126
【1】 为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不能反过来? 提示: 构造函数的主要作用是什么? 从这个方面去想! 【答】 构造函数(constructor)是一种特殊的方法。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建 ...
分类:
其他好文 时间:
2017-11-09 19:47:02
阅读次数:
118
方法覆盖(override)”的要点 class Father{ public void printValue() {System.out.println("Parent.printValue()JmyValue");}}class Son extends Father{ public void p ...
分类:
其他好文 时间:
2017-11-09 15:06:59
阅读次数:
163
问题一: 解决: 之所以调用父类的构造方法是因为在父类中,可能存在私有属性需要在构造方法内初始化,不能反过来,因为子类继承父类,子类的构造方法在第一句会隐式的调用父类的构造方法,完成初始化。 问题二: 解决: 判断第二个和第四个出现错误 运行结果截图: 经过运行,第二个,第四个和四五个不能正常运行 ...
分类:
其他好文 时间:
2017-11-09 14:35:02
阅读次数:
149
1. 观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用代码是否是第一句,影响重大! 通过 super 调用基类构造方法,必须是子类构造方法中的第一个语句。 2.现在有三个类: class Mammal{} ...
分类:
其他好文 时间:
2017-11-08 22:53:33
阅读次数:
242
运行 TestInherits.java 程序: 基类构造在前截图: 基类构造在后: 在运行子类对象时,基类的构造函数要在子类构造函数的首位。 为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不能反过来? 构造方法的目的是初始化成员,基类都没有初始化,子类继承肯定不会初始 ...
分类:
其他好文 时间:
2017-11-08 17:47:08
阅读次数:
158