Gå til indholdet

N280 Interface (IDbFunktioner)

Du skal skabe en tom konsol app med følgende klasser:

class Hund  {

    public string Navn { get; set; }

}

class Ubåd  {

    public int Nummer { get; set; }
    public double Turbine { get; set; }
}

For at kunne gemme objekter af klasserne på samme konsistente måde, og give mulighed for at benytte polymorfi, skal du skabe et interface kaldet IDbFunktioner, der udelukkende består af metoden void Gem(). Sørg for at begge klasser implementerer interfacet, og at metoderne implementeres ved at der skrives på consol ”Gemmer hund…” og ”Gemmer ubåd…”.

Extra

Skab nu i Main() et array af IDbFunktioner (som jo dermed kan pege på både en hund og en ubåd), og tilføj et par objekter af både Hund og Ubåd. Løb nu arrayet igennem og kald Gem(). Der skulle gerne skrives hhv. ”Gemmer hund…” og ”Gemmer ubåd…”. Du har altså skabt en samhørighed mellem en hund og ubåd ved at begge klasser består af en konkret metode.

Klik for at se et forslag til en løsning
using System;

namespace Demo
{
    class Program
    {
        static void Main(string[] args)
        {

            IDbFunktioner o = new Hund();   // eller Ubåd
            o.Gem();

            IDbFunktioner[] array = new IDbFunktioner[4];
            array[0] = new Hund();
            array[1] = new Ubåd();
            array[2] = new Hund();
            array[3] = new Ubåd();
            foreach (var item in array)
            {
                item.Gem();
            }

        }
    }

    interface IDbFunktioner
    {
        void Gem();
    }

    class Hund : IDbFunktioner
    {

        public string Navn { get; set; }

        public void Gem()
        {
            Console.WriteLine("Gemmer hund...");
        }
    }

    class Ubåd : IDbFunktioner
    {
        public int Nummer { get; set; }
        public double Turbine { get; set; }
        public void Gem()
        {
            Console.WriteLine("Gemmer ubåd...");
        }
    }

}