Kalıtım, bir 'sınıfın' mevcut bir 'sınıftan' türetildiği zamandır. Eğer bir Person
sınıfınız varsa, o zaman tüm şeyleri Student
genişleten Person
, Student
miras alan bir sınıfınız Person
var 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
, Student
kendi ö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 Person
bir olan, read
yöntem ve bir var Student
uzandığı Person
kendi uygulamasını olan, read
bir varsa bağlı olarak çalışma zamanı tarafından sizin için belirlenen çağrılır yöntem Person
veya 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 p
olduğ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.