INHERITS / PEWARISAN adalah salah satu kemampuan dari Object Oriented. Inherits, merupakan sarana untuk menghilangkan penulisan ulang terhadap kode yang dapat digunakan berulang kali yang didasarkan pada hubungan relasional hirarki. Dengan Inherts kita dapat mewariskan semua class parent/induk ke class baru yang akan dibuat tanpa harus merubah class parent/induk.

OVERRIDING, konsepnya sama dengan overloading yaitu menulis kembali method. Namun, caranya overriding menulis kembali method sama persis. Sama mulai dari nama method dan isinya dan mengimplementasi kembali di sub classnya. Overriding dipakai saat kita menggunakan method yang sama tapi berbeda implementasinya.

* OVERRIDING CLASS : 
Penambahan field customer dan supplier pada class res_partner_contact. Class yang akan di overriding harus di inherits terlebih dahulu.

class res_partner_contact(osv.osv):

_name = “res.partner.contact”
_inherit = “res.partner.contact”
_columns = {

‘customer’: fields.boolean(‘Customer’),
‘supplier’: fields.boolean(‘Supplier’),

}

res_partner_ contact ()

* PARENT/INDUK CLASS : 

class res_partner_contact(osv.osv):

_name = “res.partner.contact”
_description = “res.partner.contact”
_columns = {

‘name’: fields.char(‘Last Name’, size=30,required=True),
‘first_name’: fields.char(‘First Name’, size=30),
‘mobile’:fields.char(‘Mobile’,size=30),
‘title’: fields.selection(_title_get, ‘Title’),
‘website’:fields.char(‘Website’,size=120),
‘lang_id’:fields.many2one(‘res.lang’,’Language’),
‘job_ids’:fields.one2many(‘res.partner.job’,’contact_id’,’Functions and Addresses’),
‘country_id’:fields.many2one(‘res.country’,’Nationality’),
‘birthdate’:fields.date(‘Birth Date’),
‘active’ : fields.boolean(‘Active’),
‘partner_id’:fields.related(‘job_ids’,’address_id’,’partner_id’,type=’many2one’, relation=’res.partner’, string=’Main Employer’),
‘function_id’:fields.related(‘job_ids’,’function_id’,type=’many2one’, relation=’res.partner.function’, string=’Main Function’),
‘job_id’: fields.function(_main_job, method=True, type=’many2one’, relation=’res.partner.job’, string=’Main Job’),
’email’: fields.char(‘E-Mail’, size=240),

}

res_partner_ contact ()