程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> go語言如何實現類似c++中的多態功能

go語言如何實現類似c++中的多態功能

編輯:C++入門知識

go語言如何實現類似c++中的多態功能


go語言作為編程語言中的後起之秀,在博采眾長的同時又不失個性,在注重運行效率的同時又重視開發效率,不失為一種好的開發語言。在go語言中,沒有類的概念,但是仍然可以用struct+interface來實現類的功能,下面的這個簡單的例子演示了如何用go來模擬c++中的多態的行為。


package main


import "os"
import "fmt"


type Human interface {
    sayHello()
}


type Chinese struct {
    name string
}


type English struct {
    name string
}


func (c *Chinese) sayHello() {
    fmt.Println(c.name,"說:你好,世界")
}


func (e *English) sayHello() {
    fmt.Println(e.name,"says: hello,world")
}


func main() {
    fmt.Println(len(os.Args))
    
    c := Chinese{"汪星人"}
    e := English{"jorn"}
    m := map[int]Human{}
    
    m[0] = &c
    m[1] = &e
    
    for i:=0;i<2;i++ {
        m[i].sayHello()
    }
}


從上面的例子來看,在go中實現類似C++中的多態可謂是非常的簡單,只要實現相同的接口即可。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved