Objektově orientované programování
OOP=Object-oriented programming
Metodika vývoje softwaru, založena na myšlenkách:
Objekty – Prveky modelované reality jsou v programu seskupeny do entit nazývaných objekty. Ty si pamatují svůj stav a poskytují operace
Třída objektů - Abstrakce množiny podobných objektů
Zapouzdření - zaručuje, že objekt nemůže přímo přistupovat k vnitřnostem jiných objektů, což by mohlo vést k nekonzistenci. Každý objekt navenek zpřístupňuje rozhraní, pomocí kterého se s objektem pracuje.
Dědičnost (Specializace) – objekty jsou organizovány stromovým způsobem, kdy objekty nějakého druhu mohou dědit z jiného druhu objektů, čímž přebírají jejich schopnosti, ke kterým pouze přidávají svoje vlastní rozšíření. Třída A dědí ze třídy B, jestliže třída A je podmnožinou třídy B. Třída A se nazývá podtřídou třídy B, a třída B se nazývá nadtřídou třídy A.
Polymorfismus (mnohotvarnost) – odkazovaný objekt se chová podle toho, jaké třídy je instancí. Pokud několik objektů poskytuje stejné rozhraní, pracuje se s nimi stejným způsobem, ale jejich konkrétní chování se liší podle implementace. U polymorfismu podmíněného dědičností to znamená, že na místo, kde je očekávána instance nějaké třídy, můžeme dosadit i instanci libovolné její podtřídy, neboť rozhraní třídy je podmnožinou rozhraní podtřídy.