zoukankan      html  css  js  c++  java
  • go 学习之接口

    注意事项:

    接口本身不能创建实例,但是可以指向一个实现了该接口的自定义类型的变量(实例)

    在golang中,一个自定义类型需要将某个接口的所有方法都实现,我们说这个自定义类型实现了该接口

    只要是自定义数据类型,就可以实现接口,不仅仅是结构体类型

    一个自定义类型可以实现多个接口

    一个接口(A接口)可以继承多个别的接口(接口B,C),这是如果要实现A接口也必须将B,C接口实现。

    interface类型默认是一个指针(引用类型),如果没有对interface初始化就使用,那么会输出nil

    一个接口继承另外两个接口,如果两个接口包含同样的方法时,编译器会报错,程序不会报错

    指针实现了空接口时,要使用 var a AInterface = &结构体名称

    空接口(interface{})不包含任何的方法,正因为如此,所有的类型都实现了空接口,因此空接口可以存储任意类型的数值

    接口和继承:

    当A结构体继承了B结构体,那么A结构体就自动的继承了B结构体的字段和方法,并且可以直接使用;

    当A结构体需要扩展功能,同时希望不破坏继承关系,则可以实现某个接口即可,实现接口是对继承机制的补充

    接口和继承解决 的问题不同:

    继承的主要价值在于:解决代码的复用性和可维护性

    接口的主要价值在于:设计,设计好各种规范(方法),让其他自定义类型去实现这些方法

    接口比继承更加灵活 Person  Student

    继承是 满足 is - a 的关系,而接口只需满足 like - a 的关系

    接口在一定程度上实现代码解耦

  • 相关阅读:
    Thinkphp --- 入口文件
    Thinkphp --- 路由定义
    thinkphp --- 写入日志
    BeginnerAdmin后台框架的使用!
    windows本地环境如何用wamp配置多域名绑定访问
    微信小程序 --- 设置页面的标题
    豆瓣api开发
    微信开发 --- 微信支付
    微信小程序 --- 完成小程序支付功能
    thinkphp发起网络请求
  • 原文地址:https://www.cnblogs.com/Caoxt/p/14132838.html
Copyright © 2011-2022 走看看