面向对象
继承
继承的定义
type Father struct {
lastName string
relationship string
}
type Son struct {
Father
}
在golang中,没有关键字去声明Father 是Son 的父类。只需要在Son 里面进行声明即可
对比Java是使用extends 关键字
使用继承声明的类
var son Son
多态
talk is cheap
type stack interface {
isEmpty() bool
size() int
push(val interface{})
pop() interface{}
}
type arrayIntStack struct {
color string
//var arr []int = make([]int, 10)
}
func (a arrayIntStack) push(val interface{}) {
fmt.Println(val)
}
func (a arrayIntStack) pop() interface{} {
return 1
}
func (a arrayIntStack) isEmpty() bool {
fmt.Println("implement me")
return false
}
func (a arrayIntStack) size() int {
return 1
}
//使用多态
var s stack
s = &arrayIntStack{
"Hello",
}
s.size()
fmt.Println(s.pop())
s.push(1)