Overriding

Dalam bahasa C++ properti dan method bisa diwariskan. Saat diwariskan, semua method dari class yang methodnya diterima akan disalin sama persis. Jika kalian ingin mengganti sebagian method yang sudah diwariskan, kalian bisa menggunakan method overriding.

#include <iostream>

class anjing{
    public:
        anjing(){
            berat=5.4;
            umur=3;
        }
        float berat, umur;
        int bersuara(){
            std::cout << "Guk guk" << std::endl;
            return 0;
        }

        int tampilkan_data(){
            std::cout << "Umur : " << umur << std::endl;
            std::cout << "Berat : " << berat << std::endl;
            return 0;
        }
};

class kucing:public anjing{
    public:
        kucing(){
            berat=4.5;
            umur=3;
        }
        float berat, umur;
        int bersuara(){
            std::cout << "Meong" << std::endl;
            return 0;
        }
};

int main(){
kucing kucingku;
anjing anjingku;
    anjingku.bersuara();
    anjingku.tampilkan_data();
    kucingku.bersuara();
    kucingku.tampilkan_data();
    return 0;
}
Output :
Guk guk
Umur : 3
Berat : 5.4
Meong
Umur : 3
Berat : 5.4

Contoh di atas menggunakan method bersuara() pada class kucing yang isinya berbeda dengan class anjing sebagai parent-nya. Perbedaan isi dua method tersebut disebut method overriding. 

Method yang tidak diubah, tidak perlu ditulis ulang. Method tampilkan_data() milik class kucing tetap sama dengan tampilkan_data yang dimiliki class anjing.