面向对象编程的核心概念包括哪些?
类
对象
封装
函数
关于类和对象的关系,下列哪些描述是正确的?
类是对象的实例
对象是类的实例
类定义了对象的结构和行为
对象定义了类的结构和行为
封装的好处有哪些?
提高代码的可读性
增强数据的安全性
提升代码的可维护性
增加代码的运行速度
下列哪些是面向对象编程中的属性?
类变量
实例变量
方法
参数
关于继承,下列说法正确的是?
子类可以继承父类的所有属性和方法
子类可以添加新的属性和方法
子类可以重写父类的方法
父类可以继承子类的属性和方法
什么是多态?
同一方法在不同对象上有不同表现
不同对象可以响应同一消息
类可以有多个构造函数
类可以有多个父类
关于抽象类,下列哪些描述是正确的?
抽象类不能被实例化
抽象类必须有一个以上的抽象方法
抽象类可以包含非抽象方法
抽象类可以被子类继承
接口的作用是什么?
定义一组方法的规范
提供具体的方法实现
强制子类实现特定的方法
创建对象实例
关于构造函数,下列哪些描述是正确的?
构造函数是在创建对象时自动调用的
每个类都至少有一个构造函数
构造函数的主要作用是初始化对象的状态
构造函数不能接受参数
类变量和实例变量的区别在于?
类变量由所有实例共享
实例变量每个实例都有独立的副本
类变量存储在实例中
实例变量存储在类中
静态方法的特点有哪些?
不需要self参数
可以通过类名直接调用
可以修改类状态
可以访问实例变量
类方法的特点有哪些?
使用cls参数代替self
可以通过类名或实例调用
主要用于操作类变量
可以访问实例变量
关于属性装饰器,下列哪些描述是正确的?
@property可以将方法转换为属性
@property允许添加setter和deleter方法
@property方法不能接收参数
@property方法可以修改类变量
装饰器的作用是什么?
修改函数的功能而不改变其代码
增加函数的额外功能
替换函数的实现
改变函数的调用方式
关于运算符重载,下列哪些描述是正确的?
允许自定义类的对象使用标准运算符
需要定义特殊方法来实现
可以改变现有运算符的行为
可以创造新的运算符
私有属性和方法的特点有哪些?
在名称前加上双下划线__
只能在类的内部访问
可以通过对象直接访问
可以被子类继承
Mixin模式的主要用途是什么?
分享代码片段给多个类
创建复杂的继承层次
减少代码重复
增加类的复杂度
关于析构函数,下列哪些描述是正确的?
在对象被销毁时自动调用
可以用来释放资源
每个类都可以有多个析构函数
析构函数可以接收参数
在Python中,如何定义一个抽象类?
使用abc模块
使用@abstractmethod装饰器
必须包含至少一个抽象方法
可以直接实例化
关于类和对象的关系,下列哪些描述是错误的?
类是对象的实例
对象是类的实例
类定义了对象的结构和行为
对象定义了类的结构和行为
以下关于接口的描述,正确的有?( )
定义了一组方法规范
不包含方法实现
可以使用抽象基类实现接口功能
类必须实现接口中所有方法
以下关于类和对象的描述,正确的有?( )
类是对象的蓝图
对象是类的实例
类包含属性和方法
对象可以脱离类存在
继承的特点包括?( )
子类可以继承父类的属性和方法
子类可以添加新的属性和方法
父类可以使用子类的属性和方法
子类可以重写父类的方法
以下关于父类和子类的描述,正确的有?( )
父类被其他类继承
子类继承自父类
父类的所有方法子类都能直接使用
子类可以扩展父类的功能
多态的实现方式包括?( )
继承
重写方法
抽象类
接口
以下关于构造函数和析构函数的描述,正确的有?( )
构造函数在创建对象时自动调用
析构函数在对象销毁时调用
构造函数用于初始化对象
析构函数用于执行清理工作
以下属于类变量特点的有?( )
共享于所有实例
属于类本身
可以通过类名直接访问
每个实例有自己的副本
以下属于实例变量特点的有?( )
每个对象独有
属于具体实例
每个实例有自己的副本
可以通过类名访问