请简要介绍OOP的四个基本概念，并且以markdown的形式输出。
user
```markdown
# OOP的四个基本概念

## 封装（Encapsulation）
封装是将数据和操作数据的方法绑定在一起，作为一个整体。为了保护内部状态和实现细节，封装内部数据不被外部随意访问，通过公有方法（getter和setter）提供访问途径，达到数据隐藏的目的。

## 继承（Inheritance）
继承是指一个类可以通过继承实现对另一个已有类特性的复制，增强或派生新的特性。子类可以继承父类的方法和属性，同时还可以重写和扩展这些方法和属性，以实现更具针对性的功能。

## 多态（Polymorphism）
多态是指相同的行为，对于不同的子类会有不同的表现形式。多态性可以通过方法重载（编译时多态）和方法重写（运行时多态）两种方式实现，确保程序具有更高的灵活性和可扩展性。

## 抽象（Abstraction）
抽象是指将现实世界中的复杂实体进行简化描述的过程，通过创建抽象类和接口的方式，可以实现对通用方法的定义。抽象是面向对象的基础，它可以帮助开发者集中精力关注核心的问题，而将具体实现细节抽象出去，提升代码的可复用性和可维护性。
```
assistant