Go 笔记(3) 面向对象和接口

探索Go类型扩展,类和继承,以及接口的用法和实现。

面向对象

1. 类型扩展

1
2
3
4
5
6
7
8
9
10
package main

import "fmt"

// 定义了一个新类型:Integer,与int不能直接比较/赋值
type Integer int

func (a *Integer) Add(b Integer) Integer{
return *a + b
}

2. 类和继承

在Go中,传统意义上的类相当于是对struct的类型扩展:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package main

import "fmt"

type Rect struct{
x, y float64
w, l float64
}

func (r Rect) Area() float64{
return r.l * r.w
}

func main(){
c := Rect{1,1,4,4}
fmt.Println(c.Area())
}
0%