零基础 go - 52(面向对象编程思想 - 抽象)

0 阅读1分钟

抽象的介绍

  • 之前为了定义一个结构体时,实际上就是把一类事物的共有的属性(字段)和行为(方法)提取出来,形成一个物理模型(结构体)。这种研究问题的方法就叫做抽象

  • 比如你有很多银行的账户,每个账户都有账户号码、余额、开户行等属性,还有存款、取款、转账等行为。你把这些共有的属性和行为提取出来,定义一个“账户”结构体,这就是抽象的过程。

image.png

  • 如果用代码进行实现

package main

import "fmt"

type Account struct {

    AccountNumber string

    Balance float64

    Bank string

}

// 存钱

func (a *Account) Deposit(amount float64) {

    a.Balance += amount

}

// 取钱

func (a *Account) Withdraw(amount float64) {

    if amount <= a.Balance {

        a.Balance -= amount

    } else {

        fmt.Println("Insufficient funds")

    }

}

// 查询余额

func (accout *Accout) QueryBalance() float64 {

    return accout.Balance

}

func main () {

    a := Account{

        AccountNumber: "123456789",

        Balance: 1000.0,

        Bank: "Bank A",

    }

    a.Deposit(500.0)

    fmt.Println("Balance after deposit:", a.QueryBalance()) // Balance after deposit: 1500

    a.Withdraw(200.0)

    fmt.Println("Balance after withdrawal:", a.QueryBalance()) // Balance after withdrawal: 1300

}