企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] * [ ] 继承可以解决代码复用,让我们的编程更加靠近人类思维。 * [ ] 当多个结构体存在相同的属性(字段)和方法时,可以从这些结构体中抽象出结构(比如刚才的Student),在该结构体中定义这些相同的属性和方法。 * [ ] 其它的结构体不需要重新定义这些属性(字段)和方法,只需嵌套一个Student匿结 构体即可。[画出示意图] * [ ] 也就是说:在Golang中, 如果一个struct嵌套了另一个匿名结构体,那么这个构 体可以直接访问匿名结构体的字段和方法,**从而实现了继承特性**。 *示意图* ![](https://img.kancloud.cn/04/cd/04cd466a16d882da14929099df606097_1252x720.png) <br> <br> >[success] ## **1:继承基本语法** ![](https://img.kancloud.cn/61/ba/61babb3f1d60f885fa003f6d31371f9a_1280x508.png) <br> <br> >[success] ## **2:继承案例** 1,学生管理系统 ![](https://img.kancloud.cn/ad/ea/adea9de375ab3cc74feb04c47c402fb7_1280x655.png) ![](https://img.kancloud.cn/0e/6a/0e6aa37f38d0cd17fac9abf9546ed0cc_1049x720.png) <br> <br> >[success] ## **3:继承的深入讨论** 1)结构体可以使用嵌套匿名结构体所有的字段和方法,即**:首字母大写或者小写的字段、方法,都可以使用**。[举例说明] ![](https://img.kancloud.cn/7f/d5/7fd5f5d65a1fe3bd03746f42421bf3c1_921x720.png) <br> <br> >[success] ## **4:继承的细节** 1,结构体嵌入两个(或多个)匿名结构体,如两个匿名结构体有相同的字段和方法(同时 结构体本身没有同名的字段和方法),在访问时,就必须明确指定匿名结构体名字, 否则编译报错。[ 举例说明] ![](https://img.kancloud.cn/8b/29/8b293d8059d0a69a3503bdcf17a80ba7_799x720.png) <br>  2,如果一个struct嵌套了一个**有名结构体**,这种模式就是组合,如果是组合关系,那么在访问组合的结构体的字段或方法时,必须带上结构体的名字 ![](https://img.kancloud.cn/13/20/13203928d6efd42708c90d26c25f0fa0_874x720.png) <br> 3,嵌套匿名结构体后,也可以在创建结构体变量(实例)时,直接指定各个匿名结构体字段的值 ![](https://img.kancloud.cn/70/34/7034b6a21a56ea9cd6cd33b8ecbb1ca0_1030x720.png) <br> <br> **练习题:** 注意但是不可以重名 ![](https://img.kancloud.cn/13/46/13462593ff56f40df10adcacfde1a439_1280x699.png) <br> <br> >[success] ## **5:多重继承** 如一个struct嵌套了多个匿名结构体,那么该结构体可以直接访问嵌套的匿名结构体的字段和方法,从而实现了多重继承。 ![](https://img.kancloud.cn/f6/6d/f66d71c372c36c6790213ae3bdd396c3_941x720.png)