一文详解Go的面向对象编程

来自:网络
时间:2023-05-17
阅读:
目录

概述

  • Go 语言的面向对象编程有三个重要的思想:封装、继承和多态。
  • 封装

Go 语言通过 struct 结构体的方式来实现封装,结构体可以包含各种类型的变量和方法,可以将一组相关的变量和方法封装在一起。使用首字母大小写控制变量和方法的访问权限,实现了信息隐藏和访问控制。

  • 继承

Go 语言中没有传统的继承机制,但是可以使用嵌入式类型来实现类似继承的效果,将一个类型嵌入到另一个类型中,从而继承嵌入类型的方法和属性。嵌入式类型的特点是可以直接访问嵌入类型的属性和方法,不需要通过接口或者其他方式进行转换。在 Go 语言中,可以通过 struct 嵌套和 interface 嵌套来实现继承的效果。

  • 多态

Go 语言通过接口来实现多态,一个类型只需要实现了接口的所有方法,就可以被赋值给该接口类型的变量。这样可以实现类似于面向对象语言中的多态性。多态性使得程序可以根据上下文环境自动选择合适的方法实现,提高了代码的灵活性和可复用性。

实战

常规函数写法

在这个示例中,函数和结构体是分离的,函数接收结构体指针类型作为参数,需要手动传递结构体的指针。尽管这种方式有一定的缺陷,调用会比较麻烦,但它更加符合基于过程式编程思想的设计理念,即将一个大问题拆分成多个小问题,并通过函数解决这些小问题。适用于初学者对于代码的简单操作。优点就只有易于理解。

package test

import (
    "fmt"
    "testing"
)

type Mobile struct {
    User  string  `json:"user"`
    Brand string  `json:"brand"`
    Prise float64 `json:"prise"`
}

func CallUp(m *Mobile) {
    fmt.Printf("%s is using 
返回顶部
顶部