2026-10-22 13:12:07
Go语言通过结构体(struct)和方法(method)的组合实现了面向对象编程的核心特性,包括封装、继承和多态。以下是具体实现方式及代码示例:
1. 封装Go语言通过结构体和方法的访问权限控制实现封装:
关键点:
Go通过结构体嵌套实现继承(实际是组合),子类可直接访问父类字段和方法:
type Student struct { Person // 嵌套父类(匿名组合) age int // 子类属性(注意避免与父类同名)}// 子类方法func (s *Student) Run() { fmt.Println(s.Name, "跑得真快") // 直接访问父类字段}注意事项:
Go通过接口(interface)实现多态,任何实现了接口方法的类型均可赋值给接口变量:
type Singer interface { Sing()}func Perform(s Singer) { s.Sing()}func main() { p := &Person{Name: "小黄"} s := &Student{Person: Person{Name: "小花"}} Perform(p) // 输出: 你好,小黄: 请高歌了一曲青藏高原吧 Perform(s) // 输出: 你好,小花: 请高歌了一曲青藏高原吧}关键点:
Go提供多种初始化方式:
func main() { // 方式1: new() 返回指针 p := new(Person) p.Name = "小黄" // 方式2: & 结构体字面量(推荐) p1 := &Person{Name: "小黄"} // 初始化子类 s := &Student{ Person: Person{Name: "小花"}, // 显式初始化父类 age: 18, }}总结Go的面向对象设计更注重组合优于继承和接口驱动开发,适合构建高内聚、低耦合的系统。多实践即可掌握其精髓。