go语言为啥没有继承?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言为啥没有继承?相关的知识,希望对你有一定的参考价值。

看了一下其他方面都很不错,但没有继承,光有接口的话,那相同的类属性,是不是都要重复声明?

参考技术A http://golang.org/doc/effective_go.html#embedding,楼主可以看看这个文档 参考技术B 可以用匿名字段的.

Go语言自学系列 | golang继承

视频来源:B站《golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]》

一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:Go语言自学系列 | 汇总_COCOgsta的博客-CSDN博客


golang本质上没有oop的概念,也没有继承的概念,但是可以通过结构体嵌套实现这个特性。

例如

package main

import "fmt"

type Animal struct 
    name string
    age  int


func (a Animal) eat() 
    fmt.Println("eat...")


func (a Animal) sleep() 
    fmt.Println("sleep")


type Dog struct 
    Animal


type Cat struct 
    Animal


func main() 
    dog := Dog
        Animal
            name: "dog",
            age:  2,
        ,
    

    cat := Cat
        Animal
            name: "cat",
            age:  3,
        ,
    

    dog.eat()
    dog.sleep()

    cat.eat()
    dog.sleep()

运行结果

[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
eat...
sleep
eat...
sleep

以上是关于go语言为啥没有继承?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Go 语言的性能还不如java

Go语言之嵌入类型

Go语言自学系列 | golang继承

Go语言如何实现遗传算法

go语言,为啥range循环取的指针地址和直接用数组取的指针地址不一样,求指教

为啥要使用 Go 语言?Go 语言的优势在哪里?