Rust 程序设计语言 简体中文版 1.85.0简体中文版 继承作为类型系统与代码共享 继承(Inheritance)是一种机制:一个对象可以从另一个对象的定义中继承元素,从而获得父 对象的数据和行为,无需再次定义。 如果一种语言必须具有继承才能被认为是面向对象语言,那么 Rust 不是其中之一。Rust 不支 持定义一个结构体时继承父结构体的字段和方法,除非使用宏。 然而,如果您习惯于在编程过程中使用继承,那么根据运用继承的原因,Rust t 提供了其他解 决方案。 选择继承有两个主要的原因。其一是代码复用:您可以为一种类型实现特定的行为,继承可将 其复用到不同的类型上。在 Rust 代码中可以使用默认 trait 方法实现来进行有限的代码复用, 就像示例 10-14 中在 Summary trait 上增加的 summarize 方法的默认实现。任何实现了 Summary trait 的类型都可以使用 summarize 方法而 实现, 继承的子类也拥有这个方法的实现。当实现 Summary trait 时也可以选择覆盖 summarize 的默 认实现,这类似于子类覆盖从父类继承方法的实现。 其二与类型系统有关:子类型可以用于父类型被使用的地方。这也被称为多态 (polymorphism):如果多个对象共享某些特征,可以在运行时将它们互相替代。 多态(Polymorphism) 对很多人来说,多态性与继承同义。但它实际上是一个更广义的概念,指的是可以处0 码力 | 562 页 | 3.23 MB | 22 天前3
CurveFs 用户权限系统调研是如何与具体的 Inode 相关联 acl 属性是用于访问控制的,对一个文件读写执行都要通过这个 acl 属性来控制。 default_acl 属性是目录特有的 ACL 属性,在此目录中创建的文件和目录都将继承这个 default_acl 属性(对于普通文件来说,该指针为空)。Linux 中使用简单的 Posix_acl_xattr 来对其操作,setfacl 和 getfacl 都是通过 getxattr0 码力 | 33 页 | 732.13 KB | 6 月前3
共 2 条
- 1













