25.2 多重继承

多重继承指的是类型获得多个父类型行为的能力,它在传统的面向对象语言中通常是不被实现的(C++ 和 Python 例外)。因为在类继承层次中,多重继承会给编译器引入额外的复杂度。但是在 Go 语言中,通过在类型中嵌入所有必要的父类型,可以很简单的实现多重继承。

有关方法重载就是一个类中可以有相同的函数名称,但是它们的参数是不一致的,在Java、C++中这种做法普遍存在。Go中如果尝试这么做会报重新声明(redeclared)错误,但是Go的函数可以声明不定参数,这个非常强大。

func Println(a ...interface{}) (n int, err error) {
	return Fprintln(os.Stdout, a...)
}

其中 a ...interface{} 表示参数不定的意思。如果要根据不同的参数实现不同的功能,要在方法内检测传递的参数。