Answer:
The question given is incomplete as it does not contains the image. I have found the image of the question and it is attached below.
The solution of the question is also attached below in the image.
I hope it will help you!
Explanation:
Answer:
FileOutputStream out = new FileOutputStream("ObjectData.dat");
ObjectOutputStream ostream = new ObjectOutputStream(out);
ostream.writeObject(r);
Explanation:
For object serialization, we can use the writeObject method of java.io.ObjectOutputStream class.
The complete code fragment is as follows:
import java.io.*;
class Demo{
public static void main(String args[]){
try{
r = <Reference to Object to be serialized> ;
FileOutputStream out = new FileOutputStream("ObjectData.dat");
ObjectOutputStream ostream = new ObjectOutputStream(out);
ostream.writeObject(r);
ostream.close();
} catch(Exception e){
e.printStackTrace();
}
}
}
<u>Output:</u>
f1 in A
f2 in A
f1 in B
f2 in A
f1 in A
f2 in A
f1 in B
f2 in B
<u>Explanation:</u>
In this snippet, the code makes use of virtual functions. A virtual function is defined as a function that is defined in the base class and redefined in the derived class. If the derived function accesses the virtual function, the program will get executed with the derived class’s version of the function.
In this code, we define the virtual function f1() in class A and also redefine it in class B which is the derived class of A. While executing the program, the function g which takes the object b (class B’s object) as a parameter. It will print class B’s version of f1() rather than class A’s version. This is working off the virtual function.