Class interface hii ni class ambayo huweka sintaksia (kanuni, mpangilia) ambapo class zitakuwa zinafuata.unapotaka kuifanyia kazi (impleent) hiyo class anterface utatumia keyword implements . 

Mfano:

// Abstract class

abstract class gari{

 

}

//

class toyota implements gari{

 

}

 

Kuna namna mbili za kutengeneza interface class, moja ni kutumia abstract  keyword  kama ilivyo kwenye mfano uliotangulia na nyingine ni kutumia class kama hapo chini ila mara nyingi huwa inatumika abstract kutengeneza class insterface.

// Abstract class

class gari{

 

}

//

class toyota implements gari{

 

}

 

Sasa nakwenda kutumia mfano ambao tumeuona kwenye somo lililopita. Huu utaanza kukupa aidia na maswali kadhaa kuhusu interface

abstract class gari{

 //abstract method

 tangazo();

 taarifa();

}

 

 

class toyota implements gari{

 @override

 tangazo() {

   // TODO: implement taarifa

   print("Tunauza gari aina ya toyota");

 }

 @override

 taarifa() {

   // TODO: implement taarifa

   print("Toyota imeuzwa");

 }

 

 

}

 

 

class bugati implements gari{

 @override

 tangazo() {

   // TODO: implement tangazo

   print("Tunauza gari aina ya Bugati");

 }

 @override

 taarifa() {

   // TODO: implement taarifa

   print("Bugati imeuzwa");

 }

}

 

 

class tipa implements gari{

 @override

 tangazo() {

   // TODO: implement taarifa

   print("Tunauza gari aina ya Tipa");

 }

 

 

 @override

 taarifa() {

   // TODO: implement taarifa

   print("Tipa limeuzwa");

 }

}

 

 

void main(){

 bugati bu = bugati();

 bu.tangazo();

 bu.taarifa();

 print(" ");

 

 

 toyota to = toyota();

 to.tangazo();

 to.taarifa();

 print(" ");

 

 

 tipa ti = tipa();

 ti.tangazo();

 ti.taarifa();

 

 

}

 

 

Saa wacha tujifunze mambo kadhaa kuhusu tofauti ya interface na abstract. 

Kwa kutumia interface unaweza ku implement class zaidi ya moja kwenye child class moja, unachotakiw akufanya ni kuzitenganisha kwa alama ya mkato (,). Angallia mfano hapo chii

 

abstract class gari{

 tangazo();

}

 

abstract class toyota {

 uza_toyota();

}

class mauzo implements gari, toyota{

 @override

 tangazo() {

   // TODO: implement tangazo

   print("Tunauza gari");

 }

 @override

 uza_toyota() {

   // TODO: implement uza_toyota

   print("Tunauza toyota");

 }

}

void main(){

 mauzo m = mauzo();

 m.tangazo();

 m.uza_toyota();

}

 

 

Angalia mfano mwingine huu hapa wa kukokotoa maksi za mwanafunzi na kutafuta wastani.

// abstract class as interface

abstract class CalculateTotal {

 int total();

}

// abstract class as interface

abstract class CalculateAverage {

 double average();

}

// implements multiple interfaces

class Student implements CalculateTotal, CalculateAverage {

// properties

 int marks1, marks2, marks3;

// constructor

 Student(this.marks1, this.marks2, this.marks3);

// implementation of average()

 @override

 double average() {

   return total() / 3;

 }

// implementation of total()

 @override

 int total() {

   return marks1 + marks2 + marks3;

 }

}

 

void main() {

 Student student = Student(90, 80, 70);

 print('Total marks: ${student.total()}');

 print('Average marks: ${student.average()}');

}

 

 

Mwisho:

Katika somo linalofuata tutakwenda kujifunza kuhusu concept ya mixin yaani mix in hapa tunakwenda kujifunza jinsi ya kutuia code zaidi ya mara moja kwenye class.