Abstraction, bir sınıfın sadece önemli detaylarını ortaya çıkararak karmaşıklığını gizlemeyi amaçlar 3. Bu sayede, gereksiz detaylara dalmadan sadece sınıfın sunduğu özellik ve davranışlar görülebilir 3. Abstraction, soyut sınıflar (abstract classes) veya arayüzler (interfaces) kullanılarak yapılır 34.
Inheritance ise, bir sınıfın başka bir sınıfın özelliklerini ve davranışlarını miras alabilmesi anlamına gelir 34. Bu prensip sayesinde, genel özellikler temel sınıfta tanımlanır ve spesifik özellikler türetilmiş sınıflarda tanımlanır 3. Inheritance, kod tekrarını azaltır ve daha organize bir yapı oluşturulmasını sağlar 3.
5 kaynaktan alınan bilgiyle göre: