Golang继承

Golang 实现继承

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

package main

import (
	"fmt"
)

//创建结构体Animal
type Animal struct {
	name string
	age  int
}

//定义结构体Animal的两个方法
func (Animal) eat() {
	fmt.Println("eat..")
}
func (Animal) sleep() {
	fmt.Println("sleep")
}

//创建结构体Dog
type Dog struct {
	Animal
	color string
}

//创建结构体Cat
type Cat struct {
	Animal
	types string
}

func main() {
	dog := Dog{
		Animal{name: "毛毛", age: 5},
		"black",
	}
	cat := Cat{
		Animal{name: "咪咪", age: 3},
		"英短银渐层",
	}
	dog.eat()
	dog.sleep()
	fmt.Printf("dog.name: %v\n", dog.name)
	fmt.Printf("dog.color: %v\n", dog.color)

	cat.eat()
	cat.sleep()
	fmt.Printf("cat.name: %v\n", cat.name)
	fmt.Printf("cat.types: %v\n", cat.types)
}

Output:

eat..
sleep
dog.name: 毛毛
dog.color: black
eat..
sleep
cat.name: 咪咪
cat.types: 英短银渐层

你可能感兴趣的:(go,golang,开发语言,后端)