Voiko Java-abstraktilla luokalla olla rakentaja?
Voiko Java-abstraktilla luokalla olla rakentaja?

Video: Voiko Java-abstraktilla luokalla olla rakentaja?

Video: Voiko Java-abstraktilla luokalla olla rakentaja?
Video: Lonely (short version) 2024, Huhtikuu
Anonim

Kyllä, an abstraktilla luokalla voi olla a rakentaja sisään Java . Sinä voi joko antaa nimenomaisesti a rakentaja to abstrakti luokka tai jos et, kääntäjä tahtoa lisää oletusarvo rakentaja ei argumenttia sisällä abstrakti luokka . Tämä on totta kaikille luokat ja se koskee myös an abstrakti luokka.

Voiko konstruktori siis olla abstrakti Javassa?

Sinä voi ei ole abstrakti rakentaja , kuten abstrakti tarkoittaa, että sinun on annettava sille toteutus jossain vaiheessa alaluokissasi. Mutta et voi ohittaa rakentaja . siellä tahtoa ei ole mitään järkeä ottaa abstrakti rakentaja : Sinä tahtoa aina soittaa rakentaja lapsiluokasta eikä perusluokasta.

Samoin, kuinka kutsut abstraktia luokkakonstruktoria? Voit määritellä a rakentaja in an abstrakti luokka , mutta et voi rakentaa sitä objektia. Kuitenkin konkreettinen osa- luokat voi (ja täytyy) soittaa puhelimella yksi rakentajat määritelty kohdassa abstrakti vanhempi luokkaa . Et voi soittaa puhelimella an abstraktin luokan rakentaja kanssa luokkaa ilmentymän luomislauseke, ts.

Samoin ihmiset kysyvät, miksi abstraktilla luokalla on konstruktori?

A rakentaja Java ei itse asiassa "rakenna" objektia, sitä käytetään kenttien alustamiseen. Kuvittele, että sinun abstraktilla luokalla on kentät x ja y, ja että haluat aina alustettavan tietyllä tavalla riippumatta siitä, mikä todellinen konkreettinen alaluokka lopulta luodaan.

Voiko abstraktilla luokalla olla objekteja Javassa?

Koska se on abstrakti ja an esine on konkreettista. Ei, suunnittelijat eivät tarjonneet keinoa. Koska an abstrakti luokka on epätäydellinen luokkaa (epätäydellinen siinä mielessä, mitä se sisältää abstrakti menetelmät ilman runkoa ja tulostetta) emme voi luoda ilmentymää tai esine ; samalla tavalla kuin sanot käyttöliittymästä.

Suositeltava: