Til fasit   Oppgave 4

Legg flg. kode på filen Testprogram.java:

public class Testprogram
{
  public static void f(A a) { System.out.println("A"); }   // 1
  public static void f(B b) { System.out.println("B"); }   // 2
  public static void f(C c) { System.out.println("C"); }   // 3  

  public static void main(String... args)
  {
    f(new C());
  }
}

class A {}                          // A er en klasse
interface B {}                      // B et grensesnitt
class C extends A implements B {}   // C er subtype til både A og B

Oppgaver:

  1. Kjør programmet! Utskriften viser hvilken av de tre f-metodene som blir kalt.
  2. Ta vekk metode 3 (sett tegnet // foran metoden). Hva sier kompilatoren?
  3. Ta metode 3 tilbake og ta vekk en av de to andre metodene (1 eller 2). Kjør programmet. Hvilken av metodene blir kalt?
  4. Ta vekk metode 3 på nytt. Ta også vekk en av de to andre. Kjør programmet!