跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 让人迷惑的 interface
未分類
14 5 月 2020

让人迷惑的 interface

让人迷惑的 interface

資深大佬 : SlipStupig 13

golang 里面有用interface定义接口的,而这个接口似乎并不是其它语言所定义的接口比如:Java python 一个个含义,我在网上看了一个示例代码:

package main  import (  "fmt" )  type Phone interface {  call() }  type NokiaPhone struct { }  func (nokiaPhone NokiaPhone) call() {  fmt.Println("I am Nokia, I can call you!") }  type IPhone struct { }  func (iPhone IPhone) call() {  fmt.Println("I am iPhone, I can call you!") }  func main() {  var phone Phone   phone = new(NokiaPhone)  phone.call()   phone = new(IPhone)  phone.call()  } 

为什么能用struct完成组合继承,还需要用interface呢?

大佬有話說 (5)

  • 資深大佬 : AngryPanda

    这个例子,不是为了演示继承。

  • 資深大佬 : Hanggi

    Duck typing 了解下

  • 資深大佬 : jackrelative

    golang 的 interface 与 java 的作用非常类似。本质上是为了实现多态特性而存在的。还和 cpp 的虚函数是一样的目标。此例子并没有显示出 go 的接口的用途。

  • 資深大佬 : lhx2008

    这个是接口来做多态,但是一般用在函数参数或者成员变量里面, 不会有人真的在 main 里面 var 一个接口。
    Go 的嵌套也算不上是完整的继承,只是把组合的成员变量和函数换了个变量空间释放了

  • 資深大佬 : janxin

    python 有 duck typing 的吧

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具