课程
/后端开发
/Java
/文件传输基础——Java IO流
为什么 student stu=(student) ois.readObject();可以调用student类的tostring()方法?是如何调用的?求大神解答
2015-10-10
源自:文件传输基础——Java IO流 6-1
正在回答
正有此疑问,百度了一下,热心网友“苍冥”回答:这是Object的方法,而所有类都是继承Object,所以“所有对象都有这个方法”。这个方法的作用是为了方便输出,具体到本案例,是System.out.println(stu)这句调用的toString()方法.而不是student stu=(student) ois.readObject()这句调用的.括号里的“stu”如果不是String类型的话,就自动调用student的toString()方法.不用显式打出来,即不用写成stu.toString()。如果没有重写toString方法,则输出的就是对象stu的地址.
创建Student类的时候 老师重写了toString方法 如果没重写的 默认调用Object的toString方法 输出的就是对象的地址
不说toString方法,你把一个对象强制转换成Student,那么Student有什么方法,引用变量当然能调用,但如果你这个对象不是Student,那么调用方法时就会报错
wwp 提问者
sixGod 回复 wwp 提问者
举报
为您介绍IO流的使用,以及对象的序列化和反序列化的内容
2 回答关于ObjectOutPutStream对象oos在调用writeObject(Student s)方法如何去调用Student重写的writeObject(ObjectOutPutStream oos)方法
3 回答oos.writeObject(stu)和ois.readObject()是怎么调用student中private方法的?
1 回答Student类中public String toString(){return "Student [stuno=" + stuno + ", stuName=" + stuName + ", stuage=" + stuage + "]";}方法重写后,没有执行该方法,但是System.out.println(stu);输出了该方法的返回值,为什么???
3 回答重写的writeObject方法里的参数是ObjectOutputStream型的,为什么调用的时候可以写student类的
1 回答student序列化的具体实现方法是什么