跳到主要内容

go 语言中如何实现继承

· 阅读需 1 分钟
一介布衣
全栈开发者 / 技术写作者

  • 文章目录

    • 回顾
    • go 语言中如何实现继承
  • 回顾

一.之前说到了go中如何实现类 传送门
二.go中如何实现类的封装 传送门

go 语言中如何实现继承

package main

import (
"fmt"
)

type people struct {
name string
age int
}

func (p people) GetName() string {
return p.name
}

type Student struct {
people
grade int
}

func (s Student) GetGrade() int {
return s.grade
}

func main() {

var s = Student{people{"zhangzhi", 35}, 3}

fmt.Printf("student name is %s, grade is %d ,age is %d", s.GetName(), s.GetGrade(), s.age)

}

上面我们定义个私有类 people,
指向类 people 定义了一个公有方法 GetName ,获取私有字段 name 的值.

然后定义一个公有类 Student ,继承 people
指向类 Student 定义了一个公有方法 GetGrade ,获取私有字段 grade 的值.

Student 继承 people 后,相当于也有了 GetName 的方法,直接在实例上使用
fmt.Printf("student name is %s, grade is %d ,age is %d", s.GetName(), s.GetGrade(), s.age)