1 package main
2
3 import "fmt"
4
5 type A interface {
6 test1()
7 }
8
9 type B interface {
10 test2()
11 }
12
13 type C interface {
14 A
15 B
16 test3()
17 }
18
19 type Cat struct {
20 //如果想实现接口C,那不止要实现接口C的方法,还要实现接口A,B中的方法
21 }
22
23 func (c Cat) test1() {
24 fmt.Println("test1()....")
25 }
26
27 func (c Cat) test2() {
28 fmt.Println("test2()....")
29 }
30
31 func (c Cat) test3() {
32 fmt.Println("test3()....")
33 }
34
35 func main() {
36 /*
37 接口的嵌套:
38 */
39
40 var cat Cat = Cat{}
41 cat.test1()
42 cat.test2()
43 cat.test3()
44 fmt.Println("--------------")
45
46 var a1 A = cat
47 a1.test1()
48 fmt.Println("--------------")
49
50 var b1 B = cat
51 b1.test2()
52 fmt.Println("--------------")
53
54 var c1 C = cat
55 c1.test1()
56 c1.test2()
57 c1.test3()
58 fmt.Println("----------")
59
60 //var c2 C = a1
61 var a2 A = c1
62 a2.test1()
63 }