In: Computer Science
This lab is an exercise of using Java’s and C++’s dynamic binding features. The uncompleted programs to run in Java and in C++ are given below. Note that you need to create a driver class with the main method to run the Java program. Also, you need to write the main function to run the C++ program. Perform the following activities:
The Java Program is:
class A
{ public void p()
{ System.out.println(“A.p”); } public void q()
{ System.out.println(“A.q”); } public void r()
{ p(); q(); }
}
class B extends A { public void p()
{ System.out.println(“B.p”); }
}
class C extends B
{ public void q()
{ System.out.println(“C.q”); } public void r()
{ p(); q(); }
}
…
A a;
C c = new C(); a = c; a.r(); a = new B();
a.r(); a = new C();
a.r();
The C++ Program is:
class A
{ public:
virtual void p()
{ cout << “A.p” << endl; } void q() { cout << “A.q” << endl; } virtual void r()
{ p(); q(); }
};
class B : public A
{ public:
void p()
{ cout << “B.p” << endl; }
}; class C : public B
{ public:
void q()
{ cout << “C.q” << endl; } void r()
{ p(); q(); }
};
help me pls, i cant run java part. do i need to change something?
JAVA :
class A
{ public void p()
{ System.out.println(“A.p”);
}
public void q()
{ System.out.println(“A.q”);
}
public void r()
{ p();
q();
}
}
class B extends A {
public void p()
{ System.out.println(“B.p”);
}
}
class C extends B
{ public void q()
{ System.out.println(“C.q”);
}
public void r()
{ p();
q();
}
}
class Driver
{ public static void main(String args[])
{
A a;
C c = new C();
a = c;
a.r();
a = new B();
a.r();
a = new C();
a.r();
}
}
C++ :
#include<iostream>
using namespace std;
class A
{ public : virtual void p()
{ cout << “A.p” << endl;
}
void q()
{ cout << “A.q” << endl;
}
virtual void r()
{ p();
q();
}
};
class B : public A
{ public : void p()
{ cout << “B.p” << endl;
}
};
class C : public B
{ public : void q()
{ cout << “C.q” << endl;
}
void r()
{ p();
q(); }
};
int main()
{
A a;
C c;
B b;
c.r();
b.r();
c.r();
}
Common Output of Java & C++ :
B.p
C.q
B.p
A.q
B.p
C.q