Mixin 与继承

2024-01-09

mixin 和继承有什么区别?


mixin 通常与多重继承一起使用。所以,从这个意义上说,“没有区别”。

细节是 mixin 很少作为独立对象有用。

例如,假设您有一个名为“ColorAndDimension”的 mixin,它添加了颜色属性以及宽度和高度。

现在,您可以将 ColorAndDimension 添加到 Shape 类、Sprite 类、Car 类等。它们都将具有相同的接口(例如 get/setColor、get/setHeight/Width 等)

因此,在一般情况下,mixin 是继承。但你可以认为这是类在整个领域中的角色问题,即 mixin 是“主要”类还是只是一个 mixin。


编辑——只是为了澄清。

是的,用当今的现代行话来说,mixin 可以被认为是具有关联实现的接口。它实际上只是使用一个简单的、旧的、日常的类的简单的、旧的、日常的多重继承。这恰好是MI的一个具体应用。大多数语言都不给 mixin 任何特殊的地位;它只是一个被设计为“混合”的类,而不是独立使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mixin 与继承 的相关文章

  • 为什么 'self.self' 在 swift 中编译并运行?

    昨天我回顾了 Swift 中的一段代码 其中包括这一行 self self someProperty 这让我很惊讶 因为这个词self被保留并用作对当前实例的引用 起初我用其他语言检查了这种现象 但都给出了错误 这并不奇怪 但是 为什么它能
  • 如何确保超类的子类方法的线程安全?

    我参加了一次面试 并被要求为以下要求设计一个课程 假设我有一个 A 类 它可以有任意数量的子类 即子类 类 A 有一个名为 doSomething 的方法 该方法是同步的 要求是 A 的所有子类都是强制性的重写 doSomething me
  • 在 C++ 中什么时候应该使用“friend”?

    我一直在阅读C FAQ http yosefk com c fqa 并且很好奇friend http yosefk com c fqa friend html宣言 我个人从未使用过它 但我有兴趣探索该语言 使用的一个很好的例子是什么frie
  • 依赖注入系统中的事件朝哪个方向发展?

    上或下 我是一个非常注重视觉的人 我将我的应用程序视为一个层次结构 顶部是根 底部是叶子 我还了解到 在 DI 系统中 容器不知道其所包含对象的职责 功能 相反 所包含的对象知道它们的上下文 因为上下文 依赖项 被注入 UP 非 DI 方式
  • Python子类方法从超类方法继承装饰器

    我有一个具有retrieve 方法的超类 并且它的子类每个都实现自己的retrieve 方法 我希望每个retrieve 方法都被装饰为在收到相同参数时缓存返回值 而不必在每个子类中装饰该方法 装饰器似乎不能被继承 我可能可以调用超类的方法
  • PHP 中可以动态添加数据成员吗?

    我想知道是否可以在 PHP 运行时添加新的类数据成员 Yes prop newname obj gt prop 42 会做同样的事情 obj gt newname 42 如果 obj 尚不存在 则任一者都会将 newname 添加为属性
  • 如何获取MATLAB句柄对象的ID?

    当我尝试使用时出现问题MATLAB 句柄对象 http www mathworks com help techdoc ref handle html作为关键值MATLAB 容器 Map http www mathworks com help
  • C++ 模板中的名称查找

    我有一些 C 代码 如果没有 fpermissive 选项 就无法再编译 这是我无法分享的专有代码 但我认为我已经能够提取一个简单的测试用例来演示该问题 这是 g 的输出 template eg cpp In instantiation o
  • 如何为带有继承的 C++ 类编写 C 包装器

    我只是想知道是否有一种方法可以为具有继承的 C 类创建 C 包装 API 考虑以下 class sampleClass1 public sampleClass public int get return this data 2 void s
  • 覆盖Java中的属性[重复]

    这个问题在这里已经有答案了 在 Java 中 我最近有几个项目 我使用了这样的设计模式 public abstract class A public abstract int getProperty public class B exten
  • 什么是多重重继承?

    我将以下称为 多重重新继承 直接继承一个类一次 并通过继承其一个或多个后代来间接继承一次或多次 通过继承一个类的两个或多个后代来间接继承一个类两次或多次 我想知道它是否存在以及如何明确访问嵌入的子对象 1 Professional C 2n
  • 枚举的子类化

    有没有一种简单的方法来子类化Javaenum 我问这个问题是因为我有大约 10 个实现相同接口的对象 但它们对某些方法也有相同的实现 因此我想通过将所有相同的实现放置在扩展的中间对象中来重用代码Enum它也是我需要的所有其他类的超类 或许事
  • 由于继承抽象类而禁用设计器?

    我有一个项目的解决方案 那个项目中有 40 或 50 种形式 我制作了 4 个基本形式 所有其他形式都可以继承 所有 4 个基本表单都继承 System Windows Forms Form 几乎 90 的形式继承了前 2 个基本形式之一
  • JavaScript 原型 - 请澄清

    有人可以帮我理解原型属性吗 我不明白原型属性是函数的属性还是函数内部的属性 假设我们创建以下构造函数 Food 此时 函数 Food 具有 Food prototype 属性 由于 Food 是 Object 的实例 因此这意味着 Obec
  • 检查一个类是否是另一个类的子类

    我想在不创建实例的情况下检查一个类是否是另一个类的子类 我有一个类 它接收类名作为参数 作为验证过程的一部分 我想检查它是否属于特定的类系列 以防止安全问题等 有什么好的方法可以做到这一点吗 is subclass of http php
  • 为什么我不使用 Child.prototype = Parent.Prototype 而不是 Child.prototype = new Parent(); Javascript 继承?

    我不明白 javascript 中继承的这种行为我总是看到它的定义如下 function GameObject oImg x y this x x this y y this img oImg this hit new Object thi
  • R参考类问题

    我正在尝试在 R 中创建一个简单的参考类 这是我的代码 R 初学者 MyClass lt setRefClass MyClass fields list a numeric b numeric methods list initialize
  • Facebook api 回调的上下文?

    有没有办法在 javascript facebook sdk api 回调中传递上下文 这是一个简单的例子 现在这不起作用 因为我的回调函数中的变量 this name 将是未定义的 因为它不在我的用户对象上下文中 知道怎么做吗 funct
  • 使用 NSError 检查错误的正确结构

    我正在编写各种例程 并尽力保持其整洁和重构 我正在创建的方法开始看起来与此代码类似 IBAction buttonPress id sender Create Document Shopping List with this documen
  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a

随机推荐

  • 如何检查列是否已经是外键?

    我有名为 Person 的表和名为 ID 的列 如何检查 ID 是否已经是外键 因为我想用以下代码来实现 ALTER TABLE Person ADD FOREIGN KEY ID REFERENCES Job ID ON DELETE C
  • 如何使用 String.format 将字符串居中?

    public class Divers public static void main String args String format 1 10s 2 10s 3 20s n System out format format First
  • 谷歌地图 v3 热图在页面加载时不显示

    我有一个映射页面 它检索 json 响应并创建相关的点数组来加载热图 所有这些都在所需的初始化查询中 该查询在 jquery document ready 中调用 但奇怪的是 所有外部数据都返回正常并且填充正常 点数组也正常 但是 当我在热
  • Linux 上的 MS SQL Server 通过 PHP 提供非模拟预准备语句支持

    Summary 我正在尝试使用准备好的语句来停止 SQL 注入 但无法找到保证其正常工作所需的支持 Scenario 我在 Linux 上托管一个站点 该站点使用 FreeTDS 版本 0 91 连接到 Microsoft SQL Serv
  • 我什么时候真正需要在 Inno Setup 中使用 ScaleX 和 ScaleY 函数?

    这是文档ScaleX功能 ScaleX https jrsoftware org ishelp topic isxfunc scalex htm 同样的事情是为了ScaleY ScaleY https jrsoftware org ishe
  • Redis 连接池 + Node.js

    Node js 异步 I O 是否需要 Redis 连接池 我看到的大多数 Redis 库都允许您创建客户端连接 但连接池模块并不多 因此我认为它并不那么重要 让我困惑的一件事是 Redis 在一个 Redis 实例中默认有 16 个不同
  • 如何使用 PHP 将 .pdf 文件作为 BLOB 存储到 MySQL 中?

    如何从 PHP 将 pdf 文件作为 BLOB 存储到 MySQL 中 编辑添加 以下代码已过时 无法在 PHP 7 中运行 有关更多详细信息 请参阅答案底部的注释 假设一个由整数 ID 和 blob DATA 列组成的表结构 并假设 My
  • 适用于 x64 的 SQLite3.dll

    从下载sqlite org 下载 https www sqlite org download html 他们提供适用于 Windows 的预编译二进制文件适用于 x86 和 x64 所以 下载的是 def文件和一个 dll文件 使用这两个文
  • 单击侦听器上的通知 RemoteView

    所以 经过一番绞尽脑汁之后 我已经无计可施了 我有一个媒体播放器RemoteViews在我的通知中 我希望能够访问播放 暂停 上一个和下一个按钮 我知道setOnClickPendingIntent 将用于通过通知进行通信 然而 我想知道这
  • 如何从 NSString 中提取/拆分数字和字符串

    我有一个 NSString text randomtext12345 文本字符串始终以 string 未知长度 开头 后跟 number 整数类型 文本之间没有 分隔符 如何检测哪个是字符串还是整数 为了提取 分离 分离出文本成为 NSSt
  • 空节点的非法自关闭节点表示法 - 使用 PHP DOMDocument 输出 XHTML

    我正在 PHP 中使用 XPATH 处理符合 XML 的 XHTML 输入 如下所示 xml new DOMDocument xml gt loadXML utf8 encode temp temp utf8 decode xml gt s
  • 执行到 pod 的 kubernetes RBAC 角色动词

    我的 1 9 集群为开发用户创建了这个部署角色 部署按预期进行 现在我想向开发人员授予执行和日志访问权限 我需要为 pod 添加什么角色 kind Role name deployment manager rules apiGroups e
  • Python del 语句

    Calling delPython 中的变量 这是立即释放分配的内存还是仍在等待垃圾收集器收集 就像在java中一样 显式调用del对何时释放内存没有影响 del 语句不回收内存 它删除引用 从而减少该值的引用计数 如果计数为零 则可以回收
  • 如何在 SonarQube Scanner for Jenkins 中设置 sonar.projectBaseDir?

    我尝试分析 Jenkins 中多模块项目的一个模块SonarQube 扫描仪 https plugins jenkins io sonar插件 2 5 版 不幸的是 Jenkins 选择了错误的模块作为工作目录 在这种特殊情况下 我可以更改
  • 如何测试用户是否选择了要上传的文件?

    在页面上 我有 if empty FILES logo name dossier upload fichier basename FILES logo name taille maxi 100000 taille filesize FILE
  • android.database.sqlite.SQLiteException:没有这样的列

    当我执行此查询时 我得到 android database sqlite SQLiteException 没有这样的列 错误是什么 public Cursor Getupdate String rid throws SQLException
  • JAVA getConstructor 抛出 NoSuchMethodException

    我是JAVA新手 我正在努力学习反射 http tutorials jenkov com java reflection index html 我想获得特定的构造函数 选择示例表单here http tutorials jenkov com
  • 在向上滚动和向下滚动时向菜单添加底部框阴影

    我有一个具有以下 CSS 属性的菜单 header width 100 position fixed z index 9000 overflow auto 因此 根据上面的 CSS 属性 该元素 header 显然无论滚动如何都会保持在顶部
  • 使用 Swift if let 和逻辑 AND 运算符 &&

    我们知道我们可以使用if let语句作为速记来检查可选的 nil 然后展开 但是 我想使用逻辑 AND 运算符将其与另一个表达式结合起来 因此 例如 在这里我进行可选的链接来展开并可选地将我的 rootViewController 向下转换
  • Mixin 与继承

    mixin 和继承有什么区别 mixin 通常与多重继承一起使用 所以 从这个意义上说 没有区别 细节是 mixin 很少作为独立对象有用 例如 假设您有一个名为 ColorAndDimension 的 mixin 它添加了颜色属性以及宽度