instruction: Írja le az objektumorientált programozás három alapelvét.
output: Az objektumorientált programozás olyan programozási paradigma, amely objektumokat és osztályokat használ építőelemként, hogy moduláris, újrafelhasználható és könnyen karbantartható szoftvereket fejlesszen. Íme az objektumorientált programozás három alapelve:
  
  1. **Kapszulázás:** A kapszulálás az objektum belső részleteinek elrejtése és a tulajdonságaihoz való hozzáféréshez szükséges interfész biztosítása. Ez az elv megvédi az objektum belső adatait a közvetlen módosítástól, növelve az objektum biztonságát és integritását.
  
  2. **Öröklés:** Az öröklés lehetővé teszi a fejlesztők számára, hogy olyan új osztályokat hozzanak létre, amelyek újrafelhasználják, kiterjesztik és specializálják a meglévő osztályok viselkedését. Ez az elv segít csökkenteni a kód redundanciáját, és lehetővé teszi a fejlesztők számára, hogy könnyebben érthető és karbantartható osztályokat hozzanak létre.
  
  3. **Polimorfizmus:** A polimorfizmus lehetővé teszi, hogy a különböző osztályok objektumait egy közös szuperosztály objektumaiként kezeljék. Ez lehetővé teszi a fejlesztők számára, hogy rugalmasabb és újrafelhasználhatóbb kódot írjanak, mivel különböző osztályok olyan objektumaival dolgozhatnak, amelyeknek közös interfészük van. A polimorfizmus gyakran metódus felülbírálással valósul meg, amikor egy alosztály a szuperosztálya metódusának új implementációját biztosítja.