Til fasit   Oppgave 3

Du vil få en synatksfeil i flg. klasse. Hvorfor? Fjern så den linjen som inneholder syntaksfeilen og kjør programmet. Hvorfor blir utskriftene slik de blir? Fjern så den versjonen av skriv som har Integer som type (2. versjon). Hva blir så utskriften av programmet?

public class Testprogram
{
  public static <T extends Number> void skriv(T t)  // 1. versjon
  {
    System.out.println("1. versjon " + t);
  }

  public static void skriv(Integer t)  // 2. versjon
  {
    System.out.println("2. versjon " + t);
  }

  public static void main(String... args)
  {
    int i = 5; Integer k = i; Number n = k; Object o = n;

    skriv(i);
    skriv(k);
    skriv(n);
    skriv(o);
    skriv(3.14);
  }
}