```
class Foo {
    int number;
    public Foo(int x) {
        number = x;
        multiply();
    }
    public void multiply() {
        number = 2 * number;    
    }
    public int getNumber() {
        return number;
    }
}
class Bar extends Foo {
    int number;
    public Bar(int x,int y) {
        super(x);
        number = y;
        multiply();
    }
    public void multiply() {
        number = number * 3;
    } 
}
class Test {
    public static void main(String args[]) {
        Foo foo = new Foo(42);
        Foo bar = new Bar(42,24);
        System.out.println(foo.getNumber() + "\n" + bar.getNumber());
    }
}

```

The output of this code is 84 and 42 but no matter how I trace it, I end up with 84 and 72. Can anyone explain this in detail.