相比于java、c++,go的interface有什么区别吗?
题目来源:跟谁学
答案:
go语言并没有面向对象的相关概念,go语言提到的接口和java、c++等语言提到的接口不同,它不会显示的说明实现了接口,没有继承、子类、implements关键词。go语言通过隐性的方式实现了接口功能,相对比较灵活。
interface是go语言的一大特性,主要有以下几个特点:
- interface 是方法或行为声明的集合
- interface接口方式实现比较隐性,任何类型的对象实现interface所包含的全部方法,则表明该类型实现了该接口。
- interface还可以作为一中通用的类型,其他类型变量可以给interface声明的变量赋值。
- interface 可以作为一种数据类型,实现了该接口的任何对象都可以给对应的接口类型变量赋值。