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.