Kõhulihaste erinevustracKlass ja liides Java
Peamine erinevus kõhulihaste vaheltracKlass ja liides Java
- Interface'is saab klass rakendada mitut liidest, samas kui klass saab pärida ainult ühe Ab-itract-klass.
- Interface'il pole juurdepääsumodifikaatoreid. Eeldatakse, et kõigel Interface'i sees defineeritud on avalik modifikaator, samas kui Abs'iltracKlassil võib olla juurdepääsu modifikaator.
- Liides ei saa sisaldada andmevälju, samas kui abstract-klassil võivad olla andmeväljad.
- Liidesed aitavad määratleda klassi perifeerseid võimeid, samas kui abstract-klass määratleb klassi identiteedi.
Mis on kõhulihasedtract-klass?
Klass, millel on kõhulihasedtracMärksõna t oma deklaratsioonis nimetatakse abstract-klass. Kõhulihasedtract-klassidel peaks olema null või rohkem kõhulihaseidtract-meetodid. st meetodid ilma kehata. Sellel võib olla mitu konkreetset meetodit. Abstract-klassid võimaldavad teil luua betoonklasside jooniseid. Kuid päriv klass peaks rakendama abs-itract-meetod. Abstract-klasse ei saa eksemplari luua.
Liideste kasutamise olulised põhjused
- Selle saavutamiseks kasutatakse liideseid abstracmine.
- Mõeldud dünaamilise meetodi eraldusvõime toetamiseks käitusajal
- See aitab teil saavutada lahtise haake.
- Võimaldab eraldada meetodi määratluse pärimishierarhiast
Olulised põhjused kõhulihaste kasutamisekstract-klass
- Abstract-klassid pakuvad alamklassidele vaikimisi funktsionaalsust.
- Pakub malli tulevaste konkreetsete klasside jaoks
- Aitab määratleda selle alamklassidele ühise liidese
- Abstract-klass võimaldab koodi korduvkasutatavust.
Mis on liides?
Liides on plaan, mida saab kasutada klassi rakendamiseks. Liides ei sisalda ühtegi konkreetset meetodit (meetodit, millel on kood). Kõik liidese meetodid on absoluutselt...tract-meetodid. Liidest ei saa eksemplari luua. Küll aga saab eksemplari luua klasse, mis liideseid rakendavad. Liidesed ei sisalda kunagi eksemplari muutujaid, kuid võivad sisaldada avalikke staatilisi lõppmuutujaid (st konstantseid klassimuutujaid).
Liidese ja abs erinevustract Klass Java
Kõhulihasedtract-klass võimaldab teil luua funktsionaalsust, mida alamklassid saavad rakendada või tühistada, samas kui liides lubab teil ainult funktsionaalsust deklareerida, kuid mitte seda rakendada. Klass saab laiendada ainult ühte abs-i.tract-klass, samas kui klass saab rakendada mitut liidest.
| parameetrid | Interface | Abstract-klass |
|---|---|---|
| Kiirus | Aeglane | kiire |
| Mitu pärandit | Rakendage mitu liidest | Ainult üks kõhulihastract-klass |
| struktuur | Abstract-meetodid | Abstract ja betoonimeetodid |
| Millal kasutada | Tuleviku täiustamine | Iseseisvuse vältimiseks |
| Pärimine/ rakendamine | Klass võib rakendada mitut liidest | Klass saab pärida ainult ühe abs-väärtusetract-klass |
| Vaikerakendus | Liidesesse uut kraami lisades on õudusunenägu kõigi juurutajate leidmine ja äsja määratletud kraami juurutamine. | Kõhulihaste korraltract-klassi puhul saate ära kasutada vaikimisi rakendust. |
| Juurdepääsu modifikaatorid | Liidesel pole juurdepääsu modifikaatoreid. Kõik liideses määratletud on avalikud modifikaatorid. | AbstracKlassil võib olla juurdepääsu modifikaator. |
| Millal kasutada | Parem on kasutada liidest, kui erinevad rakendused jagavad ainult meetodi allkirja. Väärtustüüpide polümorfne hierarhia. | Seda tuleks kasutada siis, kui erinevatel sama tüüpi rakendustel on ühine käitumine. |
| Andmeväljad | liides ei saa sisaldada andmevälju. | klassis võivad olla andmeväljad. |
| Mitme pärimise vaikeseade | Klass võib rakendada mitmeid liideseid. | Klass pärib ainult ühe kõhulihasetract-klass. |
| Täitmine | Liides on abstract nii, et see ei saa mingit koodi anda. | Kõhulihasedtract-klass saab anda täieliku vaikekoodi, mis tuleks üle kirjutada. |
| Accessi modifikaatorite kasutamine | Meetodi, atribuutide jms jaoks ei saa kasutada juurdepääsu muutjaid. | Võite kasutada kõhulihaseidtract-klass, mis sisaldab juurdepääsu modifikaatoreid. |
| Kasutus | Liidesed aitavad määratleda klassi perifeerseid võimeid. | Kõhulihasedtract-klass määratleb klassi identiteedi. |
| Määratletud väljad | Ühtegi välja ei saa määratleda | Kõhulihasedtract-klass võimaldab teil defineerida nii välju kui ka konstante |
| Pärisosa | Liides võib pärida mitu liidest, kuid ei saa pärida klassi. | Kõhulihasedtract-klass saab pärida ühe klassi ja mitu liidest. |
| Konstruktor või hävitajad | Liides ei saa deklareerida konstruktoreid ega hävitajaid. | Kõhulihasedtract-klass saab deklareerida konstruktoreid ja destruktoreid. |
| Laienduste limiit | See võib laiendada mis tahes arvu liideseid. | See võib pikendada ainult ühte treeningut või ühte kõhulihasttract klass korraga. |
| Abstract-märksõna | Kõhulihastestracmärksõna t interface on valikuline meetodi deklareerimiseks abs-inatract. | Kõhulihastestract-klass, kõhulihasedtracMärksõna t on kohustuslik meetodi deklareerimiseks abs-meetodinatract. |
| Klassi tüüp | Liidesel saab olla ainult avalik abstract-meetodid. | Kõhulihasedtract-klassil on kaitstud ja avalik kõhulihastetract-meetodid. |
Näidiskood Interface'i ja Absi jaokstract Klass Java
Järgnev on näidiskood liidese ja abs loomisekstract-klass Java
Liidese süntaks
interface name{
//methods
}
Java Liidese näide:
interface Pet {
public void test();
}
class Dog implements Pet {
public void test() {
System.out.println("Interface Method Implemented");
}
public static void main(String args[]) {
Pet p = new Dog();
p.test();
}
}
Abstract-klassi süntaks
abstract class name{
// code
}
Abstract-klassi näide:
abstract class Shape {
int b = 20;
abstract public void calculateArea();
}
public class Rectangle extends Shape {
public static void main(String args[]) {
Rectangle obj = new Rectangle();
obj.b = 200;
obj.calculateArea();
}
public void calculateArea() {
System.out.println("Area is " + (b * b));
}
}

