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 的关系

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

  • 相关阅读:
    第三周java学习总结
    第一周Java学习总结
    关闭窗体
    乱七八糟
    网页游戏资料
    timer控件的使用
    spread 签套循环改变颜色编号为颜色
    限制输入‘号的代码
    SQlcharindex命令
    限制输入类型
  • 原文地址:https://www.cnblogs.com/Caoxt/p/14132838.html
Copyright © 2011-2022 走看看