Go物件導向程式設計OOP的實現
-
在go 中 在函式名前加上一個宣告(Type *Type)表明該方法是屬於哪個物件(Type),以此來實現OOP,且特別注意,在go中因為沒有繼承的概念,所以只能使用組合這種方式來實現程式碼複用
func (Type *Type) func_Name(args) (return list){}
package demo
/*
@Author:David Ma
@Content:go中的物件導向程式設計(oop)的實現,以及型別別名和組合在使用時的區別
@Date:202-12-01 15:41
*/
import (
"fmt"
)
type Person struct {
Name string
}
// 型別別名
type Student2 Person
//型別組合
type Student1 struct {
Person
SID int
}
// go中oop的實現,在函式名前加上一個宣告(Type *Type)表明該方法是屬於哪個物件(Type)
func (p *Person) WakeUp(){
fmt.Printf("%s waking up\n", p.Name)
}
func (p *Person) Eat(){
fmt.Printf("%s eating\n", p.Name)
}
func (p *Person) Sleep(){
fmt.Printf("%s sleeping\n", p.Name)
}
func (s *Student1) Study(){
fmt.Printf("%s learning\n", s.Name)
}
func (s *Student2) Study(){
fmt.Printf("%s learning\n", s.Name)
}
func (s *Student1) Student1Daily() {
s.WakeUp()
s.Eat()
s.Study()
s.Sleep()
}
//雖然說型別別名沒有建立新型別,只是換了個名字起了個小名,但是在OOP中,無法利用型別別名來實現程式碼複用,只能利用組合來實現程式碼複用
//func (s *Student2) Student2Daily() {
// s.WakeUp() // compile error:Unresolved reference 'WakeUp'
// s.Eat() // compile error:Unresolved reference 'WakeUp'
// s.Study()
// s.Sleep() // compile error:Unresolved reference 'WakeUp'
//}
相關文章
- Python OOP 物件導向程式設計PythonOOP物件程式設計
- 真的可以,用C語言實現物件導向程式設計OOPC語言物件程式設計OOP
- OOP物件導向程式設計(Object-Oriented Programming)概述OOP物件程式設計Object
- 物件導向程式設計(OOP)的七大原則物件程式設計OOP
- 物件導向(oop)物件OOP
- 聊聊 Go 語言中的物件導向程式設計Go物件程式設計
- Kotlin 物件導向程式設計 (OOP) 基礎:類、物件與繼承詳解Kotlin物件程式設計OOP繼承
- 物件導向程式設計物件程式設計
- javascript:物件導向的程式設計JavaScript物件程式設計
- JS物件導向的程式設計JS物件程式設計
- Scala的物件導向程式設計物件程式設計
- 如何吃透Python的物件導向(OOP)Python物件OOP
- Python物件導向程式設計Python物件程式設計
- 程式設計思想 物件導向程式設計物件
- js物件導向程式設計JS物件程式設計
- 十三、物件導向程式設計物件程式設計
- 十六、物件導向程式設計物件程式設計
- Python 物件導向程式設計Python物件程式設計
- go 併發程式設計案例三 golang 中的物件導向程式設計Golang物件
- C++物件導向程式設計——遞迴實現字串的反序C++物件程式設計遞迴字串
- JS物件導向程式設計(一):物件JS物件程式設計
- [筆記]物件導向的程式設計筆記物件程式設計
- 物件導向程式設計C++物件程式設計C++
- python技能--物件導向程式設計Python物件程式設計
- Javascript 物件導向程式設計(一)JavaScript物件程式設計
- Javascript 物件導向程式設計(二)JavaScript物件程式設計
- Javascript 物件導向程式設計(三)JavaScript物件程式設計
- 06 物件導向程式設計 (續)物件程式設計
- Python物件導向程式設計(1)Python物件程式設計
- Python - 物件導向程式設計 - super()Python物件程式設計
- Python - 物件導向程式設計 - @propertyPython物件程式設計
- JavaScript物件導向程式設計理解!JavaScript物件程式設計
- PHP物件導向(OOP)—-分頁類PHP物件OOP
- 物件導向程式設計的基本原則物件程式設計
- JavaScript-設計模式-物件導向程式設計JavaScript設計模式物件程式設計
- JavaScript設計模式之物件導向程式設計JavaScript設計模式物件程式設計
- 全網最適合入門的物件導向程式設計教程:00 物件導向設計方法導論物件程式設計
- 史上最全 Python 物件導向程式設計Python物件程式設計