08.02. Interface
Interfejs služi samo za deklaraciju određenih metoda, događaja... Klasa ili struktura koja implementira interfejs mora da implementira članove interfejsa koji su navedeni u njegovoj definiciji. Interfejsi mogu da nasleđuju jedni druge.
Definisanje interfejsa
Definisanje je isto kao kod klasa. Jedina razlika je to što se koristi ključna reč interface, a ne class. Unutar interfejsa se deklarišu metode kao kod klase ili strukture, ali se nikad ne dodaje modifikator pristupa. Metode nemaju implementaciju, već samo deklaraciju.
Ne mogu da se dodaju polja unutar interfejsa.
Implementacija interfejsa
Da bi se interfejs implementirao, deklariše se klasa ili struktura koja nasleđuje interfejs i koja implementira sve metode navedene u interfejsu.
Klasa može da nasledi drugu klasu i istovremeno da implementira interfejs. U tom slučaju prvo se navodi naziv osnovne klase, pa zatim znak , i na kraju naziv interfejsa.
Primer:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication
{
public interface ITransakcija
{
void PrikaziTransakciju();
double UzmiVrednost();
}
public class Transakcija : ITransakcija
{
private string kod;
private string datum;
private double vrednost;
public Transakcija()
{
kod = "";
datum = "";
vrednost = 0;
}
public Transakcija(string kod, string datum, double vrednost)
{
this.kod = kod;
this.datum = datum;
this.vrednost = vrednost;
}
public double UzmiVrednost()
{
return vrednost;
}
public void PrikaziTransakciju()
{
Console.WriteLine("Transakcija: {0}", kod);
Console.WriteLine("Datum: {0}", datum);
Console.WriteLine("Vrednost: {0}", vrednost);
}
}
class Program
{
static void Main(string[] args)
{
Transakcija t1 = new Transakcija("001", "8/10/2015", 78900.00);
Transakcija t2 = new Transakcija("002", "9/10/2015", 451900.00);
t1.PrikaziTransakciju();
t2.PrikaziTransakciju();
}
}
}
|