menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right All_wiki chevron_right the-way-to-go_ZH_CN chevron_right eBook chevron_right 11.13.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    11.13.md
    1.31 KB / 2024-07-16 23:14:27
        # 11.13 总结:Go 中的面向对象
    
    我们总结一下前面看到的:Go 没有类,而是松耦合的类型、方法对接口的实现。
    
    OO 语言最重要的三个方面分别是:封装、继承和多态,在 Go 中它们是怎样表现的呢?
    
    - 封装(数据隐藏):和别的 OO 语言有 4 个或更多的访问层次相比,Go 把它简化为了 2 层(参见 [4.2 节](04.2.md)的可见性规则):
    
    	1)包范围内的:通过标识符首字母小写,*对象*只在它所在的包内可见
    
    	2)可导出的:通过标识符首字母大写,*对象*对所在包以外也可见
    
    类型只拥有自己所在包中定义的方法。
    
    - 继承:用组合实现:内嵌一个(或多个)包含想要的行为(字段和方法)的类型;多重继承可以通过内嵌多个类型实现
    - 多态:用接口实现:某个类型的实例可以赋给它所实现的任意接口类型的变量。类型和接口是松耦合的,并且多重继承可以通过实现多个接口实现。Go 接口不是 Java 和 C# 接口的变体,而且接口间是不相关的,并且是大规模编程和可适应的演进型设计的关键。
    
    
    ## 链接
    
    - [目录](directory.md)
    - 上一节:[接口与动态类型](11.12.md)
    - 下一节:[结构体,集合和高阶函数](11.14.md)
    
    
    links
    file_download