第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

如何在 Golang 中實現(xiàn)面向?qū)ο?/span>

標簽:
Go

图片描述

首先 Golang 中没有对象的概念,但基于现有的语法是可以写出面向对象的代码。

另外面向对象是一种编程思想, 并不局限于编程语言本身

那么 talk is cheap show me the code 让我们看看 Golang 中的 面向对象 怎么玩转 加减运算

回顾结构体

type Add struct {
	Num1 int
	Num2 int
}

以上代码用 结构体 表示了 算法中加法,用面向对象的思维来理解,Num1Num2是两个成员变量。那么,我们就应该思考,如何编写成员方法呢?

type Add struct {
	Num1 int
	Num2 int
}

func ( add *Add ) Operation() int {
	return add.Num1 + add.Num2
}

在关键字func和函数名之间加上一对小括号,写上与之关联的结构体类型的指针类型和变量名,推荐写成指针类型的原因是,函数传递的形参不是指针类型的话,无法覆盖实参。

实际上,此时 Operation() 就可以叫做成员方法了

继承

其他面向对象的语言,是使用extends关键字来表示继承的,而 go 语言中继承的设计非常简单,不需要额外的关键字。

type BaseNum struct {
	Num1 int
	Num2 int
}


// 加法
type Add struct {
	BaseNum
}

func ( add *Add ) Operation() int {
	return add.Num1 + add.Num2
}


// 减法
type Sub struct {
	BaseNum
}

func ( sub *Sub ) Operation() int {
	return sub.Num1 - sub.Num2
}

可以看到,在 Add 结构体中,我们使用到了 BaseNum 作为匿名变量

意思就是:Add 继承自 BaseNum。我们除了继承了成员变量和成员方法之外,还可以为 Add 结构体增加成员方法,重写成员方法。

接口

type Operation interface {
	Operation() int
}

图片描述
凡对象成员方法中,实现 Operation() 成员函数,皆视为继承 Operation 接口

多态

type BaseNum struct {
	Num1 int
	Num2 int
}

// 运算接口
type Operation interface {
	Operation() int
}

// 加法
type Add struct {
	BaseNum
}

func ( add *Add ) Operation() int {
	return add.Num1 + add.Num2
}

func main() {
	addOperation := Add{ BaseNum{ 1, 2 } }

	var operation Operation		// 声明接口
	operation = &addOperation	// 使用多态

	result := operation.Operation()
	fmt.Println( result )
}

以上就是 面向对象 中 封装继承多态 在 Golang 中的应用,希望对您有所得益

點擊查看更多內(nèi)容
2人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
全棧工程師
手記
粉絲
154
獲贊與收藏
1427

關(guān)注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消