【笔记】Go的面向对象

面向对象

继承

继承的定义

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)
上一篇:【瞎口胡】左偏树


下一篇:python3 入门 (三) 函数与lambda表达式、闭包