What does the following Java code output?
public class GenericExample<T extends Number> {
private T number;
public GenericExample(T number) {
this.number = number;
}
public double square() {
return number.doubleValue() * number.doubleValue();
}
public static void main(String[] args) {
GenericExample<Integer> example = new GenericExample<>(3);
System.out.println(example.square());
}
}