面向对象思想及封装,继承,多态

面向对象思想最重要的有五点,类,对象,还有面向对象的三大特征:继承,多态

类是具备某些共同特征实体的集合,是一种抽象的数据类型,是对具有相同特征实体的集合,包括事物的状态信息(成员变量)和行为信息(成员方法),用成员变量描述人的基本属性比如:身高,年龄,姓名等等,用成员方法描述人的行为特征:比如吃饭,睡觉等等。

对象就是真实世界的实体,实体与对象一一对应,也就是现实世界中的每一个实体都有一个对象,是一个具体的概念,类是泛指,对象是特指,虽然人都有身高,体重,年龄同时有腥味吃饭,睡觉等,但具体到某个人就不相同,比如老人和小孩年龄就不同等等

封装

封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式

访问限定符:

public:任意位置

protected:本类和子类中

private:本类

this代表对象,就是所在函数所属对象的引用,指向对象所占的内存空间。

继承

继承是使用已存在的类的定义作为基础建立新类的技术,新类的的定义可以增加数据或者功能,也可以用父类的功能,但不能选择性的继承父类。

继承描述的是“is-a”的关系,如果有两个对象A和B,则可以描述为“A是B”,也就是A继承B,其中B是被继承者称为父类或者基类,A是继承者称为子类或者派生类。

继承的特性:

1)子类拥有父类非private的属性和方法;

2)子类可以拥有自己的属性和方法,也就是子类可以对父类进行扩展;

3)子类可以用自己的方式实现父类的方法

多态:

1、“一个接口,多种方法”

同一种操作作用于不同的对象,会有不同那个的解释,也会产生不同的执行结果,运行时,可以通过指向基类的指针来调用实现派生类中的方法。

c++中实现多态的主要方法有:虚函数,抽象类,重载,覆盖,模板。

 多态的三个条件:

a.    继承的存在(继承是多态的基础,没有继承就没有多态).

b.    子类重写父类的方法(多态下调用子类重写的方法).

c.    父类引用变量指向子类对象(子类到父类的类型转换).。

  2、实现多态:

接口多态性。

继承多态性。

通过抽象类实现的多态性。

3、多态的主要作用:

比如建立一个父类的对象,它的内容可以是父类的也可以是子类的,当父类和子类拥有同样的函数时,当使用一个对象调用这个函数的时候,定义这个函数的类(也就是父类)里的同名函数将被调用,如果在父类里的这个函数前加上virtual关键字则子类的同名函数将被调用。

例如:

#include <iostream>

using namespace std;

class A
{
public :
    A(){}
    virtual void foo(){
    cout<<"this is A"<<endl;
}
};
class B:public A
{
public:
    B(){}
    void foo(){
    cout<<"this is B"<<endl;
}
};
int main()
{
    A *a=new B();
    a->foo();
    if(a!=NULL)
        delete a;
    return 0;
}

运行结果显示:

this is B

去掉virtual之后运行结果为:

this is A

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值