C语言实现面向对象之继承性

本文探讨如何在C语言中模拟实现面向对象的继承特性。通过将父类方法声明在结构体中,子类引用父类结构体来达到继承效果。此外,还介绍了将父类实现方法放在结构体之外,利用父类结构体指针关联属性和方法的方式。虽然C语言不内置面向对象支持,但可以利用设计思想实现继承、封装和多态。

面向对象有三个最为明显的特性:继承、封装、多态性。C++、java、C#等面向对象语言在语言层次上支持OOP,而OOP本身其实并不是专门为语言设计的。虽然C语言在语言层次上不支持面向对象,但是通过C语言也是可以实现OOP的特性的。

下面就主要讲述通过C语言实现面向对象的三大特性之一:继承性。

“继承”是面向对象中的一个概念,如果一个类A继承自另一个类B,就把这个类A称之为类B的子类,而B类则是A的父类。继承使得子类具有了父类的各种属性和方法,而不需要重新编写这些方法。同时,子类也可以重新定义一些属性,或者追加一些新的功能和属性。

在C++语言中,个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。

继承的定义格式如下:

  class <派生类名>:<继承方式><基类名>

  {

  <派生类新定义成员>

};

一般对于继承方式有三类,公有继承、私有继承、保护继承。

(1)     公有继承:基类成员对派生类的可见性对派生类来说,基类的公有成员和保护成员可见:基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态;基类的私有成员不可见:基类的私有成员仍然是私有的,派生类不可访问基类中的私有成员。

(2)     私有继承:基类成员对派生类的可见性对派生类来说,基类的公有成员和

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值