Junior — Middle
Ar turėtumėte pateikti įgyvendinimą interfeiso metodams jo baziniame klasėje?
sobes.tech AI
Atsakymas iš AI
Android'e (ir apskritai Java/Kotlin) interfeisas apibrėžia tik sutartį — metodų rinkinį, kurį turi įgyvendinti klasė. Klasėse, kurios įgyvendina interfeisą, šie metodai turi būti įgyvendinti.
Tačiau, jei turite bazinę klasę, kuri įgyvendina interfeisą, galite joje pateikti pagrindinį interfeiso metodų įgyvendinimą. Tai naudinga, jei keli pogrupiai naudos tą pačią logiką, siekiant išvengti kodo dubliavimo.
Pavyzdžiui, Java galite tai padaryti taip:
public interface MyInterface {
void doSomething();
}
public abstract class BaseClass implements MyInterface {
@Override
public void doSomething() {
System.out.println("Pagrindinis įgyvendinimas");
}
}
public class ChildClass extends BaseClass {
// Galite perrašyti doSomething arba naudoti pagrindinį įgyvendinimą
}
Taip, teikiant interfeiso metodų įgyvendinimą bazinėje klasėje, tai gali būti naudinga ir logiška architektūros ir kodo pakartotinio naudojimo požiūriu.