Kalıtım, bir 'sınıfın' mevcut bir 'sınıftan' türetildiği zamandır. Eğer bir Personsınıfınız varsa, o zaman tüm şeyleri Studentgenişleten Person, Student miras alan bir sınıfınız Personvar demektir. Kişi'deki alanlara / yöntemlere koyduğunuz erişim değiştiricileri hakkında bazı ayrıntılar vardır, ancak bu temel fikirdir. Örneğin, özel bir alan varsa Person, Studentkendi özel çünkü göremez ve özel alanlar alt sınıflar için görünmez olacaktır.
Çok biçimlilik, ne tür bir şeye bağlı olarak, programın hangi yöntemleri kullanması gerektiğine nasıl karar verdiğiyle ilgilidir. Eğer bir varsa Personbir olan, readyöntem ve bir var Studentuzandığı Personkendi uygulamasını olan, readbir varsa bağlı olarak çalışma zamanı tarafından sizin için belirlenen çağrılır yöntem Personveya Student. Biraz zorlaşır, ancak eğer böyle bir şey yaparsanız
Person p = new Student();
p.read();
Öğrenci üzerindeki okuma yöntemi çağrılır. Bu, eylemdeki polimorfizmdir. Bir çünkü bu atamayı yapabilir Student bir olduğunu Person , ancak çalışma zamanı gerçek türü olduğunu bilmek akıllı yeterli polduğunu Öğrenci .
Detayların diller arasında farklılık gösterdiğini unutmayın. Örneğin, javascript'te kalıtım yapabilirsiniz, ancak Java'da çalışma biçiminden tamamen farklıdır.