标签:面向对象

共 25 篇文章

Go语言为什么没有泛型继承?接口组合的设计哲学

Go语言为什么没有泛型继承?接口组合的设计哲学 Go语言刻意避开了传统面向对象语言中复杂的类型继承体系,转而推崇组合。即使Go 1.18引入了泛型,它依然没有引入类似Java或C那

# Go语言 # 泛型 # 接口组合
2026-05-04 146 0

Python __init__和__new__的区别:什么时候需要重写__new__

Python 中 init 和 new 的区别常常让初学者感到困惑。简单来说,new 负责对象的创建(构造),而 init 负责对象的初始化。理解这两者的分工是掌握 Python

# Python # 面向对象 # __init__
2026-04-29 165 0

Python __repr__与__str__方法在调试信息中的区别

Python repr与str方法在调试信息中的区别 在 Python 调试过程中,直接打印自定义对象往往只能看到内存地址(如 <main.Point object at 0x7f

# Python # __str__ # __repr__
2026-04-27 137 0

Python abc模块定义抽象基类强制子类实现方法

Python abc模块定义抽象基类强制子类实现方法 Python 的 abc 模块提供了一种机制,用于定义抽象基类。这就像是一个强制性的合同:父类规定某些方法必须存在,但自己不负

# Python # abc模块 # 抽象基类
2026-04-23 173 0

Lua 面向对象:基于表的实现

Lua 面向对象:基于表的实现 Lua 本身没有内置“类”的概念,但它的表极其灵活,完全能够模拟出面向对象编程中的类、对象、继承等特性。通过巧妙利用元表和 index 机制,我们可

# Lua # 面向对象 # 元表
2026-04-16 159 0

Java 接口实现:implements 关键字

Java 接口实现:implements 关键字 Java 接口定义了一组规则,而 implements 关键字则是类遵守这些规则的承诺。当你在类定义中使用 implements

# Java # 接口 # Java基础
2026-04-15 189 0

C++ 运算符重载:自定义类型的运算操作

C++ 运算符重载:自定义类型的运算操作 1. 什么是C++运算符重载 理解运算符重载是C++中的一个强大特性,允许为自定义类型(类或结构体)重新定义运算符的行为。通过运算符重载,

# C++ # 运算符重载 # 自定义类型
2026-04-14 185 0

Go 结构体:struct 与方法

Go 结构体:struct 与方法 Go 语言没有类,但结构体承担了面向对象编程中“类”的核心职责。结构体将不同类型的数据组合在一起,而方法则是定义在这些数据上的行为。掌握这两者是

# Go语言 # 结构体 # 方法
2026-04-12 176 0

TypeScript 类:public、private、protected 修饰符

TypeScript 类:public、private、protected 修饰符 TypeScript 提供了三种访问修饰符,用于控制类成员(属性和方法)的可访问性。合理使用这些

# TypeScript # 访问修饰符 # 面向对象
2026-04-11 161 0

JavaScript原型链继承与类式继承的内存结构对比

JavaScript原型链继承与类式继承的内存结构对比 JavaScript 中实现继承的核心在于如何利用内存中的原型链与构造函数。两种最基础的模式分别是“原型链继承”和“类式继承

# JS # 原型链 # 继承
2026-04-11 177 0

C++ 虚继承解决菱形继承问题

C++ 虚继承解决菱形继承问题 在 C++ 面向对象编程中,当一个派生类同时继承了两个基类,而这两个基类又共同继承自同一个父类时,会形成菱形继承结构。这种结构会导致数据冗余和访问二

# C++ # 虚继承 # 菱形继承
2026-04-09 157 0

C++ 类与对象:class 定义与实例化

C++ 类与对象:class 定义与实例化 C++ 中的“类”就像是制作产品的“模具”或“蓝图”,而“对象”则是根据这个模具生产出来的具体“产品”。理解类与对象,是掌握 C++ 面

# C++ # 面向对象 # 类定义
2026-04-08 187 0

Dart 类与继承:extends 与 implements

Dart 类与继承:extends 与 implements 在 Dart 语言中,处理类与类的关系时,最常遇到两个关键字:extends(继承)和 implements(实现)。

# Dart语言 # 面向对象 # 类与继承
2026-04-06 168 0

C++ 多态:虚函数与纯虚函数的实现

C++ 多态:虚函数与纯虚函数的实现 阶段一:实现基础多态(虚函数) 多态的核心逻辑是“统一指令,差异化执行”。通过虚函数,基类指针或引用在调用函数时,会跳过基类默认代码,直接执行

# C++编程 # 面向对象 # 多态机制
2026-04-06 201 0

Lua 元表:metatable 与 __index

Lua 元表:metatable 与 index Lua 的表本质上是键值对的集合。通过元表,可以改变表的默认行为,实现类似于面向对象编程中的操作符重载、继承等特性。核心在于理解

# Lua # 元表 # __index
2026-04-06 196 0

Python 文件系统:pathlib 模块的使用

Python 的 os.path 模块虽然经典,但处理路径时字符串拼接的繁琐和跨平台兼容性问题常让人头疼。pathlib 模块采用面向对象的设计,将路径视为对象而非字符串,让代码更

# Python # pathlib # 文件系统
2026-04-06 192 0

Go 接口实现:隐式实现与接口组合

Go 接口实现:隐式实现与接口组合 接口是 Go 语言最核心的特性之一,它提供了一种定义行为契约的方式。与 Java、C++ 等语言不同,Go 采用了隐式实现的机制——你不需要显式

# Go接口 # 隐式实现 # 接口组合
2026-04-06 184 0

Scala 单例对象:object 关键字

Scala 单例对象:object 关键字 Scala 是一门融合了面向对象和函数式编程范式的语言。在 Scala 中,object 关键字用于定义单例对象——在整个应用程序中仅有

# Scala # 单例对象 # object关键字
2026-04-05 163 0

Scala 特质:trait 与混入

Scala 特质:trait 与混入 特质(trait)是Scala中最为强大的特性之一,它既可以像Java接口那样定义方法签名,也可以像抽象类那样包含具体实现。通过特质,你可以实

# Scala # 特质 # 混入
2026-04-05 173 0

Ruby 面向对象:class 定义与方法调用

Ruby 面向对象:class 定义与方法调用 创建一个类,这是 Ruby 面向对象编程的起点。在 Ruby 中,使用 class 关键字定义类,类名必须以大写字母开头。 ruby

# Ruby # 面向对象 # 类定义
2026-04-03 142 0