Go理论-面试题

面向对象?

面向对象是一种方法论。一种非常实用的系统化软件开发方法。

三大特点:封装、继承、多态

Go和Java的区别

  • Go不允许重载,Java允许
  • Java允许多态,Go没有(但可以通过接口实现)
  • Go语言的继承通过匿名组合完成,基类以Struct的方式定义,子类只需要把基类作为成员放在子类的定义中,支持多继承;而Java的继承通过extends关键字完成,不支持多继承。

GO语言是面向对象的吗?

不是面向对象,但提供了一些面向对象的能力

  • Go 有类型和方法,并且允许面向对象的编程风格,但没有类型层次。
  • Go 中的 "接口 "概念提供了一种不同的方法,我们认为这种方法易于使用,而且在某些方面更加通用。还有一些方法可以将类型嵌入到其他类型中,以提供类似的东西,但不等同于子类
  • Go 中的方法比 C++ 或 Java 中的方法更通用:它们可以为任何类型的数据定义,甚至是内置类型,如普通的、"未装箱的 "整数。它们并不局限于结构(类)

GO语言如何支持面向对象?

封装:通过属性名大小写控制访问权限,提供Setter和Getter方法

继承:通过组合的方式实现继承:直接将要继承的类型放到属性位置。子类型包含了继承类型的相关属性和方法(首字母大写或者小写的字段、方法,都可以),也拥有自己的类型和方法

多态:通过接口实现多态,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值