类和模块之间的区别

我来自Java,现在我更多地使用Ruby

我不熟悉的一个语言功能是模块。我想知道什么是模块,什么时候使用,为什么在上使用模块

╔═══════════════╦═══════════════════════════╦═════════════════════════════════╗
║               ║ 班║ 单元║
╠═══════════════╬═══════════════════════════╬═════════════════════════════════╣
║ 实例化║ 可以实例化║ 无法*实例化║
╟───────────────╫───────────────────────────╫─────────────────────────────────╢
║ 用法║ 对象创建║ 混合设施。提供║
║               ║                           ║   名称空间。║
╟───────────────╫───────────────────────────╫─────────────────────────────────╢
║ 超类║ 单元║ 对象║
╟───────────────╫───────────────────────────╫─────────────────────────────────╢
║ 方法║ 类方法和║ 模块方法和║
║               ║   实例方法║   实例方法║
╟───────────────╫───────────────────────────╫─────────────────────────────────╢
║ 遗产║ 继承行为并能║ 没有继承权║
║               ║   为继承奠定基础║                                 ║
╟───────────────╫───────────────────────────╫─────────────────────────────────╢
║ 包含║ 不能包括在内║ 可以包含在类和║
║               ║                           ║   通过使用include║
║               ║                           ║   命令(包括所有║
║               ║                           ║   实例方法作为实例║
║               ║                           ║   类/模块中的方法)║
╟───────────────╫───────────────────────────╫─────────────────────────────────╢
║ 扩大║ 无法扩展║ 模块可以通过以下方式扩展实例:║
║               ║   扩展命令║   使用extend命令(extends)║
║               ║   (仅限继承)║   单例给定实例║
║               ║                           ║   方法(来自模块)║
╚═══════════════╩═══════════════════════════╩═════════════════════════════════╝

发表评论