Warisan ialah konsep utama dalam pengaturcaraan berorientasikan objek dan merupakan pendekatan pengaturcaraan di mana objek yang mempunyai ciri tertentu, juga dikenali sebagai kelas, boleh digunakan semula dan diubah suai untuk menghasilkan objek dengan ciri yang sama diubah suai mengikut keperluan. Warisan membenarkan kod yang ditulis sekali digunakan beberapa kali, dengan itu mengurangkan jumlah kod yang ditulis dan menjimatkan masa untuk pembangun perisian.
Dalam pengaturcaraan berorientasikan objek, kelas digunakan sebagai templat yang mentakrifkan ciri-ciri objek. Kelas-kelas ini membentuk hierarki warisan atau pokok, di mana setiap kelas mewarisi ciri-ciri daripada kelas ia berasal. Struktur hierarki ini membenarkan penggunaan semula kod, kerana kelas boleh diubah suai dengan mudah untuk mencipta objek dengan ciri yang pelbagai.
Bentuk pewarisan yang paling biasa ialah hubungan "is-a", juga dikenali sebagai subkelas. Subkelas ialah objek yang mewarisi daripada kelas asas dan memanjangkan definisi kelas asas, dengan itu mencipta objek dengan ciri yang sama seperti kelas induk, tetapi dengan beberapa ciri tambahan. Subkelas juga boleh mengatasi fungsi kelas induk, selagi ia mematuhi antara muka yang sama.
Bentuk warisan lain termasuk gubahan, yang juga dikenali sebagai hubungan "mempunyai-a". Di sini, kelas menggunakan objek sedia ada untuk menentukan ciri-cirinya. Contohnya, kelas kereta boleh mengandungi roda, pintu dan komponen lain yang boleh digabungkan untuk mencipta objek kereta yang lengkap. Bentuk pewarisan ini membolehkan sejumlah besar objek dicipta daripada kepingan kod yang agak kecil.
Pewarisan juga membolehkan penciptaan kaedah polimorfik, iaitu kaedah yang boleh menerima pelbagai jenis objek sebagai parameter dan beroperasi padanya secara berbeza. Ini menjadikan kod lebih umum, kerana kaedah yang sama boleh digunakan semula untuk lebih daripada satu jenis objek.
Warisan ialah teknik yang sangat berguna dalam pengaturcaraan berorientasikan objek, kerana ia membenarkan kod yang ditulis sekali untuk digunakan semula berulang kali. Ini mengurangkan jumlah kod yang perlu ditulis dan meningkatkan kelajuan pembangunan perisian, membolehkan pembangun perisian membangunkan program mereka dengan lebih cepat dan mudah.