面向对象——封装、继承、多态性

封装、继承与多态性是面向对象编程的三大原则。

封装

封装(Encapsulation),即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。

//Animal.h

class Animal {
    public:
        Animal();
        virtual ~Animal();

        void Eat() {
            cout << "Animal eat." << endl;
        }

    private:
        void Sleep() {
            cout << "Animal sleep." << endl;
        }
};
//Main.cpp

int main() {
    Animal* anl = new Animal();
    anl->Eat();
    //anl->Sleep();

    return 0;
}

封装Animal类,其中包括一个public(公有的)方法Eat,一个private(私有的)方法Sleep。在Main中可直接调用Animal对象公有的的Eat方法,且无需知道Eat方法的具体实现细节。但在Main中不可以调用Animal对象私有的Sleep方法。私有的方法仅在类的内部可以调用。

继承

继承(Inheritance),是基于一个父类创建一个新的子类的过程。子类自动拥有父类所有成员变量(属性)和函数(方法),并可根据需要添加更多的成员变量或函数。

//Dog.h

class Dog : public Animal {
    public:
        Dog();
        virtual ~Dog();

        void Bark() {
            cout << "Dog bark." << endl;
        }
};
//Main.cpp

int main() {
    Dog* dg = new Dog();
    dg->Eat();
    dg->Bark();

    return 0;
}

多态

多态性(Polymorphism),是指借助动态绑定技术,为一个函数名关联多种含义的能力。可以存在“一个接口,多种实现”的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值