一、封装
封装是一种将数据和相关方法组合成一个单独的实体的机制。它将数据(属性)和操作数据的方法(方法)封装在一个对象中,并对外部代码隐藏了内部的实现细节。通过封装,对象可以提供一个公共接口,使得外部代码可以通过该接口访问和操作对象的数据,而不需要了解其内部的具体实现。
二、继承
继承是一种通过定义一个新类来继承现有类的属性和方法的机制。
它允许新类(子类)继承现有类(父类)的属性和方法,并且可以在新类中添加新的属性和方法,或者重写父类的方法来定制子类的行为。
继承促进了代码的重用和扩展(),并且提供了层次化和组织化的代码结构。
1、为什么要继承?
类解决什么问题:解决的是对象与对象之间的代码冗余问题
继承解决什么问题:解决的是类与类之间的代码冗余问题
2、子类的继承可以有多个父类
class Parent1(object): pass class Parent2: pass # 子类 class Sub1(Parent1): pass # 多继承, 括号里面可以写多个类 class Sub2(Parent1, Parent2): pass
3、查看一个类继承了哪些父类,.__bases__方法
print(Sub1.__bases__) # (<class '__main__.Parent1'>,) print(Sub2.__bases__) # (<class '__main__.Parent1'>, <class '__main__.Parent2'>) print(Parent1.__bases__) # (<class 'object'>,)
三、多态
多态是指同一种操作或函数可以作用于不同的对象类型,并产生不同的行为。多态允许使用统一的接口来处理不同类型的对象,而不需要关心对象的具体类型。通过多态,可以编写通用的代码,减少了重复的代码和条件语句的使用,提高了代码的可扩展性和可维护性。多态实现了面向对象编程中的一个重要原则:针对接口编程,而不是针对实现编程。
标签:__,继承,子类,代码,多态,特性,面向对象,对象,三大 From: https://www.cnblogs.com/dgp-zjz/p/17506118.html