An exercise on classes and inheritance. What will be printed by this program?
public class Exercise {
public static void main(String [] args) {
A a = new A();
B b = new B();
C c = new C(10);
a.m(3);
b.m(3);
c.m(3);
a.print();
b.print();
c.print();
}
}
class A {
private int x;
// constructor
public A() {
x = -10;
}
public void m (int y) {
x = x + y;
}
public void print() {
System.out.println("x = " + x);
}
}
class B extends A {
protected int y = 0;
public void m(int z) {
y = y + z;
super.m(y);
}
}
class C extends B {
private int z;
public C(int w) {
z = w;
y = 5;
}
public void print() {
super.print();
System.out.println("y = " + y + " z = " + z);
}
}
This is an example from CSci 2101 course.