免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 67683 | 回复: 18
打印 上一主题 下一主题

[其他] interface 到底是个什么东西? [复制链接]

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-01-13 19:33 |只看该作者 |倒序浏览
这个东西和 Java 的接口似乎不同,既然结构中也能放置函数,为什么要设计 interface 这个东西?

论坛徽章:
13
双鱼座
日期:2013-10-23 09:30:05数据库技术版块每日发帖之星
日期:2016-04-20 06:20:00程序设计版块每日发帖之星
日期:2016-03-09 06:20:002015亚冠之塔什干火车头
日期:2015-11-02 10:07:452015亚冠之德黑兰石油
日期:2015-08-30 10:07:07数据库技术版块每日发帖之星
日期:2015-08-28 06:20:00数据库技术版块每日发帖之星
日期:2015-08-05 06:20:002015年迎新春徽章
日期:2015-03-04 09:57:09辰龙
日期:2014-12-03 14:45:52酉鸡
日期:2014-07-23 09:46:23亥猪
日期:2014-03-13 08:46:22金牛座
日期:2014-02-11 09:36:21
2 [报告]
发表于 2016-01-14 09:48 |只看该作者
通用数据类型

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
3 [报告]
发表于 2016-01-15 15:19 |只看该作者
回复 1# 104359176

可以理解为 C 语言中的 void

   

论坛徽章:
6
数据库技术版块每日发帖之星
日期:2015-11-27 06:20:00程序设计版块每日发帖之星
日期:2015-12-01 06:20:00每日论坛发贴之星
日期:2015-12-01 06:20:0015-16赛季CBA联赛之佛山
日期:2017-03-26 23:38:0315-16赛季CBA联赛之江苏
日期:2017-07-17 10:08:4415-16赛季CBA联赛之北京
日期:2018-03-04 17:01:50
4 [报告]
发表于 2016-01-20 13:08 |只看该作者
可以理解为 struct 的 type

1 => int
2 => int

struct1 => interfaceA
struct2 => interfaceA

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
5 [报告]
发表于 2016-01-26 20:07 |只看该作者
回复 4# dorodaloo


    struct 本身就是一种可定义的数据类型,为什么需要 interface.

    哪些地方必须使用 interface, 不能使用 struct

    既然 struct 也能定义方法,为什么还要需要 interface?

论坛徽章:
6
数据库技术版块每日发帖之星
日期:2015-11-27 06:20:00程序设计版块每日发帖之星
日期:2015-12-01 06:20:00每日论坛发贴之星
日期:2015-12-01 06:20:0015-16赛季CBA联赛之佛山
日期:2017-03-26 23:38:0315-16赛季CBA联赛之江苏
日期:2017-07-17 10:08:4415-16赛季CBA联赛之北京
日期:2018-03-04 17:01:50
6 [报告]
发表于 2016-01-27 14:21 |只看该作者
回复 5# 104359176


interface ==> class's type
  1. class cat
  2.     ...

  3. class dog
  4.     ...
  5.    
  6. c: cat  // c is cat [type cat, class is a type!]
  7. d: dog  // d's type is dog

  8. c, d have a different type?? cat vs dog?

  9. If we have noah's arc [what is all the anim's class?? Off Course! Animal]

  10. In static lang's container must be have same type! how to do that?
  11. Give it a interface? [what's interface? So easy! It's a class type ]

  12. You'll find? cat is animal ==> interfase: Animal
  13. You'll find? dog is animal ==> interfase: Animal

  14. What's cat or dog's type?
  15. OK it is Animal!

  16. We have A train to the Zoo: (limitations: same types?)
  17. OK: dog1, dog2,.... (dog1 is a classA, dog2 is a classA....)
  18. NG: dog1, cat1, dog2,... different type!!

  19. So? You'll find? tiger? Cat? Dog....they all different type?

  20. a class is a type: cat , dog, tiger.....
  21. but an interface A: may be ? cat, dog,...
  22. So? interface is a class's type!!

  23. train = cat, dog, tiger, lion, cat....[NO problem, They all have the same type Animal!!]
  24. That's All
复制代码

论坛徽章:
6
数据库技术版块每日发帖之星
日期:2015-11-27 06:20:00程序设计版块每日发帖之星
日期:2015-12-01 06:20:00每日论坛发贴之星
日期:2015-12-01 06:20:0015-16赛季CBA联赛之佛山
日期:2017-03-26 23:38:0315-16赛季CBA联赛之江苏
日期:2017-07-17 10:08:4415-16赛季CBA联赛之北京
日期:2018-03-04 17:01:50
7 [报告]
发表于 2016-01-27 14:29 |只看该作者
Zoo = Ani1, Ani2,.... {OK} same type
but
Zoo = Cat1, Dog1, Tiger1....{Sorry!! different Type!}


YOU'LL know? WHAT iS an Interface!!

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
8 [报告]
发表于 2016-01-27 14:44 |只看该作者
不太明白。难道 interface 是 struct 更高层次的抽象?

论坛徽章:
6
数据库技术版块每日发帖之星
日期:2015-11-27 06:20:00程序设计版块每日发帖之星
日期:2015-12-01 06:20:00每日论坛发贴之星
日期:2015-12-01 06:20:0015-16赛季CBA联赛之佛山
日期:2017-03-26 23:38:0315-16赛季CBA联赛之江苏
日期:2017-07-17 10:08:4415-16赛季CBA联赛之北京
日期:2018-03-04 17:01:50
9 [报告]
发表于 2016-01-27 15:08 |只看该作者
回复 8# 104359176


    yes, it is. interface ===> class's type

hello_kitty: Cat (type: Cat)
snoopy: Dog (type: Dog)

Boxes = [ hello_kityy, Snoopy ]
Sorry: differnnt type ==> hello_kity, snoopy? [Cat, Dog]

but Boxes = [Animal, Aniaml]  # OK same type all Animal

interface is:

class Cat: Animal
  ...

class Dog: Animal
  ...
hello_kitty: Animal = "hello kitty"
snoopy: Animal = "snoopy"

BOxes = [snoopy, hello_kitty]  #ok, SAME TYPE


var has a type => some class
some class => has a type ==> some interface!!

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
10 [报告]
发表于 2016-01-27 15:21 |只看该作者
回复 9# dorodaloo


    Go does not have class.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP