面向对象的基本特征

一、 面向对象具有三个基本特征:封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)。

1. 封装

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

//将成员变量和方封装成一个类,对外有限制的提供类的使用
public class Car{
    int a;
    String b;//成员变量
    private void get(){//成员方法

    ....代码略
    }

}

2. 继承

继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。

//继承Car的方法和变量,并且可以覆盖父类的方法或添加新的方法
public class BMW extends Car{
    int c;
    String d;

    private void get(){//重新定义get方法

    }
    private void set(){//新的set方法

    }


}

3. 多态

子类对象可以直接赋值给父类变量,即同类对象在执行同一方法时可以表现出不同的特征。

public class Audi extends Car{
    int c;
    String d;

    private void get(){//重新定义get方法

    }
    private void set(){//新的set方法

    }
    private void print(){
}
    //主方法,程序运行的入口
    public static void main(String[] args){
    Car a=new BMW();
    Car b=new Audi();
    //同一类型的a,b的get的方法可能不同,从而实现多态
    a.get();
    b.get();

    }

}
C++ 面向对象编程的四大基本特征包括:抽象、封装、继承和多态。这些特性共同构成了面向对象设计的核心基础。 ### 抽象 抽象是指对同一类对象的共同属性和行为进行概括,而暂时忽略部分细节,形成类或接口。这种抽象化有助于简化复杂系统的设计与实现。抽象可以分为两个方面:数据抽象和过程抽象。数据抽象用于描述某类对象属性或状态(即类的属性)[^1]。 ### 封装 封装是一种隐藏对象内部实现细节的机制,它允许将数据和操作数据的方法绑定在一起,并对外提供有限的访问接口。这有助于提高代码的安全性和可维护性。通过封装,用户只能通过定义好的接口来访问对象的功能,而无法直接操作其内部状态。 ### 继承 继承指的是新建一个类时,该类可以从现有的类中继承所有的属性和方法,同时还可以添加新的功能或者修改已有功能。这种方式很好地体现了特殊概念与一般概念之间的关系,通常被称为子类(派生类)和父类(基类)的关系。通过继承机制,能够构建出层次分明的类结构体系[^2]。 ### 多态 多态意味着一个接口可以在不同的上下文中表现出多种形态。在 C++ 中,多态主要通过虚函数实现,使得基类指针或引用可以指向派生类的对象,并根据实际对象类型调用相应的方法。这样就可以编写更加通用且灵活的代码逻辑。 下面是一个简单的 C++ 示例,演示了如何使用这些面向对象基本特征: ```cpp #include <iostream> using namespace std; // 基类 class Animal { public: virtual void sound() { // 虚函数支持多态 cout << "This is an animal sound." << endl; } }; // 派生类 class Dog : public Animal { // 使用继承 private: string name; // 数据抽象和封装 public: Dog(string n) : name(n) {} void sound() override { // 方法重写体现多态 cout << "Dog " << name << " barks." << endl; } }; int main() { Animal* myAnimal = new Dog("Buddy"); // 多态的应用 myAnimal->sound(); // 输出: Dog Buddy barks. delete myAnimal; return 0; } ``` 上述示例展示了从 `Animal` 类继承而来的 `Dog` 类,并利用了封装来保护 `name` 属性以及通过虚函数实现了多态行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值