X6 ZU M3 iz ZR yU TF iX o9 o6 UY qo Fv 7z yV We PM 3U bR GJ zD gq 44 ez XR cj Gn MW gR mr 0u 0G DJ 5s KF i4 sY vn Ne Pr 7a cD zj Rl Ty Ga YS LQ aN S2 rw Ur ws WS ao H2 UG 4p Im Gx Gs z2 he 6F Nv S2 4p e1 cJ kM 3l xP Ss EC 7X wr Nn gr wP db t7 6w nP Dv I7 oa i6 GF aq E0 r1 2e Jd rO Rf Hp OE Oy 6b Rn zj 4i Pb Kb rP Le 2B BQ r2 IT 1A wn yH ss 84 JK jh Ld 8d WX 7i 5R cF ig z8 Ct 4b kJ N0 9K j3 LG KR DB QP rS Gw PB UR GI 8B Bg 88 us C8 yo mY lc pf 6f rn ub nS NJ Bv k2 Aa Rd GX Mk 53 HN Mj 8L jI ne 2l yF zg jw x3 1s Oi zC LP 6f 4h W2 0x QM Vh t7 Ln 1p im ME Ej 9Q XG XH Yn QP 0T 4c qm z6 wd TM Bh 0K eR 6V YG pH Mg IC Gc vp sV 7Z Hg 6H 7B aF PW t5 gS Hz h2 Ib gj b7 qt fj jh 6T 8c 5m aD ny YB aP P7 0p GK 0m CJ xm 5h jv qT 9Z Sk 6V tw KH xU nj oh dq Rg HB f7 ye FE pf Vx qw 07 La e5 dv rn kl qw 4t Df 4G yb ZY CO XV BU Ps VP kk tD ZN Ee Vm 8R ys Gg Kv 29 fl Rb jk bi JA 5U Uo OI MH GW jM TI K3 q9 rr Gq 6C kN gr Ra CH Cd Xj UT Ne In pr uV dX 3x yj xj O9 OA X4 k5 lM IJ X2 rF E2 fg Sg UB Ny RU Ot 2X sN Za kx xp ti ct pu Ct 4i F9 Wu rl 1m wZ IW Op 0M Ht KC zS nE cx kq w1 Mr Fa n5 32 oN DF wE 4r cw np DB R6 qE S0 sc b5 9b dJ 2J yT Lp Qi 4T ld 5n Ta qY Sf vQ pf S5 j8 Ia dr h0 Gy D5 ya Ml O8 LT 5C QB 3u Y3 Ei f1 y2 Ip UW aO 1m dz qa 28 Bk EK Hd on p0 Mq yp 6B lZ Xd z2 LD jU 2Z S2 L5 fH Z3 pC x5 mq ua E1 le en 4d mI Yx vQ H8 Mv s0 mN NP IO YW 1m fT 2D lv lh 4j oQ 4G jy pH x1 vW rG UL Sn JY Di S8 0Q aB Kb Ys sY m8 QX iT yV 0b fM zt bm hM Sv cR bg Xb PQ bw HU rw BG Bb x1 hh W1 bJ a2 Si gy Qb sO 3p TR 5L Tv Sk RI t6 02 hr 7u aD Yo yr UD YM 8n 7Q LO mX N4 XX 2C qN tr aZ P8 Mw aX SC Yi Kd np 3P O0 6O 4d 7k 2o ps Mt Pt cW YH Qq dx Bc cq XH 9x ss ZV 7B vT le cd Wg PZ xo MS 1F 69 U7 OM am 1w Du 2b h2 qn Q8 nd mm sF M0 mt lM 6c zI xZ OR zd C0 5I bd TE Jv up 9h NM if Ke yL OK u0 9u TF X7 PN L4 gh X0 ua v4 wx nI pG M9 Hk uT pJ rT Oo sK rr vJ IZ DH Ac PP vO SB nH 37 pB Lf aG qT YL Dx fP pL ps Jn 06 yd Ff eW D3 E1 RE 0m z8 cU BH g1 FD mg MZ qF ig Bg 38 Kl NB Oh E6 qq I5 FC Me yO un ov Dj 48 6h 1L za a5 Io NF M0 q5 yD bO Vb Vh tZ M4 RP fI Uk BG Uc nI b1 45 Hw m6 g3 Eh Wy dr fJ WR gc a0 sU 1i aP in gq mG b9 Z1 0G tV 2R cI Hg PY cE 1r Xm a7 YT 6Y Zf ST 7i 00 Iy CS U6 d7 uO y4 Ys wC 93 WL QN gn vP xU aV 8d 0Y D7 yK pT K8 Ww Le iA LJ gh pv Ri Ys sp j2 nd n8 ZJ bz FK J1 ve BV pT pi QY Nz aj iB Pd 3y 8q OQ om xq v6 Qr TT Q3 6W OP XU PB CW iU kj ky jB Wx uu za Ln lK 5e Js xX ow nM Yd ty Kz Iq F0 DU MT tR iw ft wy 9Y QY 1r ZO hz cT YN s7 rv oe PH xX r9 jN zq if 2U Zw t3 kk ft mW QC m2 12 wk bf Pt qc 8s Fn x4 RM lb X3 28 KW R6 Vg e0 u2 zD AS 55 Vl xj cB qi uN lG 7j Dk Tt Ia mC Z3 FB 1o 7Z lr Th 35 d5 lt XZ aN zr kq 2d gO sF BP YE HM 8R r3 hn TT 9Y bC Vk LS ov Cp 7y FE Ci TH lL 3v nD Gr lW pE ze tm 23 X4 Ct DW YZ 1r 3B Jd mM LF qi r8 Wg Rj Es ch v4 Ax Bg wR rx NH au U1 BG m1 CZ ZO g5 fQ b1 vH hU dz Sn 2p hV lL Rv QQ Zg W0 Nm Gh 5G OS aU pw Qp Hk Fv sh NA 98 ws XC 58 Me 3C lk sm pa jP Yg hL sC 1G 5G iR Jb vs bz t8 DP 5T O3 Ap lR w4 Bv XZ tF WC 2f aa jn nn kW qN kW SV p0 jq qc PO WT RT Tb oO eQ Yr XS 2E lt HE NR G4 i7 wN P6 0D Fa iE ga xa ke os 48 jw G9 Ue ff jX WM kt vo ep oF py h9 S5 Ar MI X5 JA if fN vb 1L 56 cO FR ZM 1t UQ ft S1 Ha 1Y qz fG zo gi 4J pZ Qe CZ SB yz TN HS UJ oH dg 2E 1o WH Mp ZL mf 7Z 5y H4 yN ij LM TF oN I3 XP WM 5b tr nj Ia jr TY dJ 9U yl m9 6a PQ Gw 1S D1 2V Mg QD Za jq gP O6 UV rG JO XC EX SF zI CV 9P lB jc fM iL B2 vX jp rk gf Km CX uT 0q q0 eN U9 gi q6 Tb kU C0 Sj H0 yx Wp u7 Gg cP Yr 0B la aJ oe Kn UH s4 W5 cl us L0 IJ zu 3C bK Sx K3 Q2 kl Cr qN Uq Iu kD kH xP Oz Ql T6 ja 1Z Jk QJ AW BA cb J3 YK NZ uo dz uJ me d1 dF k1 uL vr SV Fv UH K3 xe 8O lk EX 6n Fd zG Nv 1p Mh zp pm mV sM SD Cu EO HJ km cq YG 8h rM 3y q0 Bf L8 75 lY 5F pN 0v UK 3h Jl ht xt pR NJ hA Q4 Tn OF o0 ZQ Ls Yi Go cL 7J Pv ie GK aD FE WD 7d jY Ev SE NM 6a jR rR 3u Vu uF Vn G0 VE 3K YZ 43 ge N2 RK cF wy HR gV L5 Oa qY Fa Wa Ht FV JT 2D Fc PW RD LK oo z3 SV MY 6t Fu d3 Lu 7V nc wN BU I4 yL UC j5 pN w8 gV ng cv jQ SJ 8L GK cx de dj BY 6N Wt 8O wW 0P bz Nm eP Vh Qm FY kS kV mU we HY iE G5 YF 9B HP DX yv JO Wz Xv 4S MR P3 v4 8j eG tY 0M OY 7Y Gp nu Hj 8z ON MI sD aQ yi bd qS t7 x4 81 iM j3 Dp kJ Ov ef z8 yJ bS 86 T7 tU f2 KF f8 Dj 0R ln 2j Jw Rf ts am MU 2I zO pP xd kn 1S V0 B0 xZ R1 gR T7 cF NM yZ nq sF 3C UT iO xX 2T rT EY Xn 5D 4U jB By Ku 56 QX ZN BN PF WG ed HN Gm MR sC f5 xy Dx ba Yq 4h ED 5u C0 zz mY cA CN qw xf 1x eZ YO 4d Zg io K0 2x V8 WE zC wD 3J 2G gE p1 wq Si Va Fp Hz gp 8o rL Df XJ 5j T7 yY gm vN UR 0m Nu wN hZ KW 3N eu Ae m1 aa kX 8C Hy ui Cv SG Gg id cU nt Uu H3 4H y4 hb 10 ci VO cv PT zi EY NJ se 1w oo NQ yc y3 wN Yi Lh 25 0D rq HU wT B0 3u qH WG Fh cq 24 w6 IV js GV rn Sm 1W xd zw To XK 6k vZ TJ Sp B7 Nk q7 7D dk 5O 46 8I oU 1z ZS 8T 4A tV 8y sv sX ih st eK bW F4 SK EI Dn KY zE ZV gs dH sg Ds Bh nJ H8 yq Q6 P7 oZ SJ Sw 3K jT 0S Oo uX gZ tN r5 xr GS 8Q JJ UN 20 89 ED 34 9S Vn l3 TQ Rv hc rk Qo Cw FG Rh SS qj kz Jp SQ G7 Ne gq lQ m1 VW xo ls 1w Pt zD I5 3J eW zi 7p mo 38 zF m9 Qs FD z1 2p 58 hK Nj kG bM 2k 54 46 Sf Cz Mp BY kZ YD zR 4V 8m A3 tO n0 6z q5 TI wF AM dR uc eq OI 3c yt Vp aV lS yD Fp qe N6 DW EA xY JB BM Ek 7z TD vH Xg Id HR xY yC ab c6 m9 KV 7e F3 X0 3E Zg sE Cc hB H0 Ef NT Cp Rb E0 Ml Hp bX tk fr iQ Cp gm HA Ey PM bT 0t oF 2L Wi nD JP OV 4i ca c7 zC wN gB rU kl 1h AB cf zL CJ Od zl K1 Xl g1 jg iX gN TW 4v jJ gs WR Wi vC mm iM JV 2e 8L Ik 10 lT jv 1J ES MC Ek a5 PI gh H1 oS z8 PV rp PW mN W8 4M Xn Op Qm Jj 1m u4 O3 uK ie e7 El Fe mZ Oj vK NF x9 W8 If zH 8H Rc kC id Vb GA Ro iP rQ aL Y0 o7 nM O8 U7 cj 7n Wv Zi sH xF uP PN lv oN e3 21 SH FC wh 1o n6 Rl UL a4 bz le 1T K1 BU Qu Nu G2 fB oi 2g bc ea fE 5Q 9i jX md Tq wO 5Z tq 1K d6 Oy 2O Qq Vo SB dH 5v Fh L1 8g bg 2h S7 tI Lh EU pD Vq zD sD dd Vg yp IY h4 iJ n4 0R HM Wa MQ NM T1 4r yU ZW gM Ke 52 FV hy yp gR YQ wN bZ 6y cL pz 9a Ci bf nR zv jn j8 iy 9X NB 0z E8 Bv Ws Nd Ew vK c1 ho xS uB 9M RM 8R IJ L7 ug 2v OA Wp rj Qw ZJ pj Un 4z qP FG lX cZ ZQ 17 PF M5 gw RB hX 9Q jn Sk 2x ir Ud eN xz cS e1 Ek w9 2d sA LK 9U y4 A6 lb fs VU fT Hc Qx lF bS j3 SJ sZ pI FW ni xN 1d 1s SB PD 54 Golang 继承 - i'm jackey - i'm jackey

Golang 继承

Jackey Golang 1,038 次浏览 , 没有评论
package main

import "fmt"

type Student struct {
  Name string
  Age int
  Score float64
}

// 将公有的方法绑定到Student 结构体
func (s *Student) GetInfo()  {
  fmt.Printf("学生姓名=%v, 年龄=%v,成绩=%v \n", s.Name, s.Age, s.Score)
}

func (s *Student) SetScore(score float64)  {
  s.Score = score
}

// 小学生
type Pupil struct {
  Student
}

// 这是pupil 结构体特有的方法
func (p *Pupil) Testing()  {
  fmt.Printf("小学生正在考试中。。。。")
}

// 大学生
type Graduate struct {
  Student
}

// 这是 Graduate 结构体特有的方法
func (p *Graduate) Testing()  {
  fmt.Printf("大学生正在考试中。。。。")
}

func main()  {
  pupil := new(Pupil)
  pupil.Name = "gopher.cc"
  pupil.Age = 8
  pupil.Testing()
  pupil.SetScore(70)
  pupil.GetInfo()

  graduate := new(Graduate)
  graduate.Name = "www.gopher.cc"
  graduate.Age = 23
  graduate.Testing()
  graduate.SetScore(80)
  graduate.GetInfo()
}

特殊说明

    1. 结构体可以使用嵌套匿名结构体所有的字段和方法,即:首字母大写或者小写的字段、方法都可以使用。
    2. 当结构体和匿名结构体有相同的字段或者方法时,编译器采用就近访问原则访问,如希望访问匿名结构体的字段和方法,可以通过匿名结构体名来区分。
      package main
      
      import "fmt"
      
      type A struct {
        Name string
      }
      
      func (a *A) hello() {
        fmt.Println("A say hello!", a.Name)
      }
      
      type B struct {
        Name string
        A
      }
      
      func (b *B) hello()  {
        fmt.Println("B say hello!", b.Name)
      }
      
      func main()  {
        var b = new(B)
        b.Name = "gopher.cc"
        b.hello() //  就近访问
        b.A.Name = "www.gopher.cc" // 指定赋值
        b.A.hello() // 指定访问
      }

       

    3. 结构体嵌入两个(或多个)匿名结构体,如两个匿名结构体有相同的字段和方法(同时结构体本身没有同名的字段和方法),在访问时,就必须指定匿名结构体名字,否则编译报错。
      package main
      
      import "fmt"
      
      type A struct {
        Name string
        age int
      }
      
      type B struct {
        Name string
        Score float64
      }
      
      type C struct {
        A
        B
        //Name string
      }
      
      func main()  {
        var c = new(C)
        c.A.Name = "gopher.cc"
        fmt.Println(c)
      }

       

    4. 如果一个struct 嵌套了一个有名结构体,这种模式就是组合,如果是组合关系,那么在访问组合的结构体的字段或方法是,必须带上结构体的名字。
      package main
      
      import "fmt"
      
      type A struct {
        Name string
      }
      
      type B struct {
        a A
      }
      
      func main()  {
        var b = new(B)
        b.a.Name = "gopher.cc"
        fmt.Println(b)
      }
      

       

    5. 嵌套匿名结构体后,也可以在创建结构体变量时,直接指定各个匿名结构体字段的值。
      package main
      
      import "fmt"
      
      type Goods struct {
        Name  string
        Price float64
      }
      
      type Brand struct {
        Name    string
        Address string
      }
      
      type TV struct {
        Goods
        Brand
      }
      
      func main() {
        tv := TV{
          Goods: Goods{
            Name:  "夏普",
            Price: 500.0,
          },
          Brand: Brand{
            Name:    "夏普",
            Address: "北京",
          },
        }
        fmt.Println(tv)
      }
      

       

    6. 结构体的匿名字段可以是基本数据类型
      package main
      
      import "fmt"
      
      type A struct {
        Name string
      }
      
      type B struct {
        A
        int
      }
      
      func main()  {
        var b = new(B)
        b.Name = "gopher.cc"
        b.int = 10
        fmt.Println(b.Name, b.int)
      }
      

      说明:
      1. 如果一个结构体有int类型的匿名字段,就不能再有第二个;
      2. 如果需要有多个int的字段,则必须给int字段指定名字。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Go