00:06
请大家多关注我的主页,看更多的根源出习视频。这节课讲杰构体的匿名嵌套,上节课讲了杰构体的匿名字段,如果匿名字段就是那点内容,那就没必要使用匿名字段了。事实上,匿名字段省略写法才是匿名字段的精髓。我们看第一点。使用匿名字段中的字段可以省略掉匿名字段,这是什么意思呢?那就用代码体验一下。我先把这段复制过去。先谢一个雷。I。再冷个。
01:03
里面的一个里字段,Life。正常使用,先来一个结构体。那你吗?这是正常的用法。The name。把A打印出来。百分号仅为。我们可以看到正能正常运行。但是省略写法可以直接把life给省略掉。
02:00
我们可以看到并没有报错。这也是正常运行的。啊。Ae,这是属于animal这个解体,我们可以看到这个结构体里面并没有name字段。但是里面有内字段。只是把life给省略掉了,一旦省略掉,就好像安里面有这段了,这这看起来就像是Java中的七成了。这个字段能够继承,那么方法能继承吗?事实上也是可以的。我们再来一个life的方法。FUNCT。新。我们打印一下。
03:00
你这个字。巅峰点。那。S等于。七点。Name。正常的调用方法是A点点。Train the land。我们可以看到能打印出来。能把省略掉吗?实际上是可以省略的。你们可以试一下。
04:00
你可以看到能正常运行,这说明了里面并没有这个方法。但是因为life里面有喷的方法,所以实现了继承的效果,这跟Java中的继承看起来是类似的。我们看第二点。优先使用当前层字段,再使用上层字段,一直到顶层,这是什么意思呢?我们先例吧。If two。把上面的结构体复制过来。再来一个切割器。
05:02
Tap dog。里面的一个匿名结构。我们可以看到有。多层的继承。这是。我们来一个这个的结构,T变量M2等于这个。嗯。这几个结构体里面都加上字段。我们来一个A点。对。等于这个。那边呢,我们看可以看到并没有报错。但是这个人。
06:01
这几个结构体里面都有,到底使用的是哪个结构体里面我们可以打印出来。把上面复制过来。我们可以看到。这个这个是最外层的。那最外层呢,也就是这个里面的name字段。我如果把这个注释掉了。我们可以看到。这个name是安里面的name呢。他因因为痘痘里面没有那,所以他只能往上层找。找到这个呢。
07:00
我再把这个人给去死掉。我们可以看到这个name就是name里面的name。因,因为安利玛和豆豆里面都没有人,名字乱。如果都有字段,但是我想用。这个是只能用dog里面的name,但是如果如果想用安里面的name可以吗?实际上是可以的。我把这个。显示出来,然后点等于。我们可以看到name dog name animal都有了。
08:01
这种能注射掉吗?实际上是可以的。我们可以看到。当animal里面的name给注释掉了,这个name就跑到里面了。我们可以看到这是省略宪法,类似于Java中的覆盖。第三,情机出现相同字端。是不能省略的,这是什么意思呢?当我们也只能通过代码提。我先把这几个复制过来。
09:00
再来个来二。然后来一个预警。这哪个A92。Life,再来个life。我们可以看到。二这里面name是都用name。来一个结构体,看那的结构体。这个能使用吗?等于。我们可以看到。这有下划线的红色波浪线。
10:03
也就是说,编译不会通过了。我们可以看到,变异不会通过。这个name是因为life和life里面都有name。他们就是那些处在贫瘠的。所以会产生冲突。嗯。如果。如果想复制的话,那不能省略这个匿名字段叫。A级能用吗?实际上是可以的。等于我们可以看到,因为A级并没有冲突,所以A级可以直接使用A2统一a.A2。
11:06
零三。我们可以看到能正常运行的。我们再看最后一点。这个甲板里面的继承。有这样的写法。Who?累。等于六。这个叫李,是替换音员的。公园里面可以吗?这个实际上是不行的。
12:00
我们可以测试一下。你先把这段代码复制过来。我们来一个负雷。We are alive。再来一个案例吗?然后你们能直接复制给吗?实际上是不行的,我们可以看到已经报错了,但是不是因为打印的问题,先把这两个都打印出来。
13:04
我们可以看到还是不错的。那是不是因为指针的问题呢?嗯,加上只能。我们可以看到还是不行了。这说明了什么?说明了这个米是替换原则,在高原年是实现不了的。
我来说两句