面向对象的三大特征

一,面向对象的思想:从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的其它概念来构造系统)。这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。

二,类和对象的概念:

类(class)和对象(object)是两种以计算机为载体的计算机语言的合称。对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型。它们的关系是,对象是类的实例,类是对象的模板。对象是通过new classname产生的,用来调用类的方法;类的构造方法 。

三,.继承:

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法, 使得子类具有父类相同的行为。

关键字extends
继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
继承是is-a的相互关系
例如:
每个学生都是人 不是每个人都是学生
私有属性是否可被继承-
这个问题目前没有唯一的标准答案,网络上可以看到2种答案,分别是可继承和不可继承

可以被继承,但是由于private的限制,所以在子类中不能直接访问
不可以被继承。当构建子类对象时,首先创建父类对象,然后再创建子类对象,子类对象中包裹父类对象
子类除了拥有父类的属性和方法(拥有父类的所有成员,但是注意构造器和析构器不是成员),也可以创建自己的 特性

四,接口:

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)

接口实现和类继承的规则不同,为了数据的安全,继承时一个类只有一个直接父类,也就是单继承,但是一个类可以实现多个接口,接口弥补了类的不能多继承缺点,继承和接口的双重设计既保持了类的数据安全也变相实现了多继承。



[public]interface 接口名称 [extends父接口名列表]
{
//静态常量
[public] [static] [final] 数据类型变量名=常量值;
//抽象方法
[public] [abstract] [native] 返回值类型方法名(参数列表);

### Python 面向对象编程的三大特性 #### 1. 封装 封装是一种将数据(属性)和行为(方法)绑定到一起的技术,通过访问控制来隐藏内部实现细节。在 Python 中,可以通过使用私有属性(以双下划线开头 `__` 的变量名)来限制外部直接访问这些属性[^2]。为了操作这些私有属性,通常会提供公共接口,即 getter 和 setter 方法,分别用于读取和设置私有属性的值。 以下是封装的一个简单示例: ```python class Person: def __init__(self, name, age): self.__name = name # 私有属性 self.__age = age # 私有属性 def get_name(self): # 获取私有属性的方法 return self.__name def set_age(self, age): # 设置私有属性的方法 if age >= 0: self.__age = age else: raise ValueError("年龄不能为负") person = Person("Alice", 30) print(person.get_name()) # 输出 Alice person.set_age(35) # 修改年龄 ``` #### 2. 继承 继承是面向对象编程的核心特性之一,它允许创建一个新的类(子类),基于已有的类(父类)进行扩展或修改。这样可以减少重复代码并提高代码的可维护性和复用性[^3]。在 Python 中,默认情况下所有的类都继承自 `object` 类[^5]。 下面是一个简单的继承例子: ```python class Animal: def speak(self): return "动物发出声音" class Dog(Animal): def speak(self): # 覆盖父类方法 return super().speak() + ", 狗吠叫" dog = Dog() print(dog.speak()) # 输出 动物发出声音, 狗吠叫 ``` #### 3. 多态 多态是指同一个方法调用可以在不同的对象上表现出不同形式的能力。这种能力使得程序设计更加灵活,因为相同的接口可以根据实际的对象类型执行不同的逻辑[^4]。在 Python 中,由于其动态类型的特性,多态表现得尤为自然。 以下展示了如何利用多态处理不同类型的对象: ```python class Cat: def sound(self): return "喵呜" class Bird: def sound(self): return "叽喳" def make_sound(animal): print(animal.sound()) cat = Cat() bird = Bird() make_sound(cat) # 输出 喵呜 make_sound(bird) # 输出 叽喳 ``` --- ### 总结 Python 的面向对象编程支持封装、继承和多态这三种核心特性。它们共同作用于构建复杂而高效的软件系统,其中封装提供了安全性,继承促进了代码重用,多态增强了灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值