Kan Java abstrakt klass ha konstruktor?
Kan Java abstrakt klass ha konstruktor?

Video: Kan Java abstrakt klass ha konstruktor?

Video: Kan Java abstrakt klass ha konstruktor?
Video: Java - урок 21.2 (Шаблон проектирования Фабрика с абстрактным классом. Часть 2) 2024, November
Anonim

Ja, en abstrakt klass kan ha a konstruktör i Java . Du burk antingen uttryckligen ange en konstruktör till abstrakt klass eller om du inte gör det, kompilatorn kommer lägg till standard konstruktör utan argument i abstrakt klass . Detta är sant för alla klasser och det gäller även för en abstrakt klass.

Kan en konstruktor följaktligen vara abstrakt i Java?

Du burk har inte en abstrakt konstruktör , som abstrakt innebär att du måste tillhandahålla implementeringen för det någon gång i din underklass. Men du kan inte åsidosätta konstruktör . där kommer vara ingen mening med att ha en abstrakt konstruktör : Du kommer ring alltid konstruktör av barnklass och inte av basklass.

På samma sätt, hur kallar man en abstrakt klasskonstruktör? Du kan definiera en konstruktör i en abstrakt klass , men du kan inte konstruera det objektet. Men konkreta under- klasser kan (och måste) ring upp en av konstruktörer definieras i abstrakt förälder klass . Du kan inte ring upp ett abstrakt klasskonstruktör med en klass instansskapande uttryck, dvs.

På samma sätt frågar folk, varför har en abstrakt klass en konstruktor?

A konstruktör i Java "bygger" egentligen inte objektet, det används för att initiera fält. Föreställ dig att din abstrakt klass har fälten x och y, och att du alltid vill att de ska initialiseras på ett visst sätt, oavsett vilken faktisk konkret underklass som så småningom skapas.

Kan abstrakt klass ha objekt i Java?

För att det är abstrakt och en objekt är konkret. Nej, designers gav inte ett sätt. Eftersom en abstrakt klass är en ofullständig klass (ofullständig i den mening den innehåller abstrakt metoder utan body och output) kan vi inte skapa en instans eller objekt ; på samma sätt som du säger för ett gränssnitt.

Rekommenderad: