第四天

2019-03-25  本文已影响0人  可问春风渡江陵

一、面向对象编程

1、特性

2、继承(匿名组合)

type Person struct{
    name string
    sex byte
    age int
}


type Student struct{
    Person
    id int
    addr string
}


var s1 = Student{Person{"ccc",'m',20},13,"hz"}

s2 := Student{Person{name:"ccc"},12,"hz"}

s3 := Student{Person:Person{sex:'m'}}

s1.name = "mike"
s1.Person = Person{"mike",'m',20}


type Student struct{
    Person
    int
    string
}


s1 := Student{Person{name:"ccc"},666,"hz"}

s1.int //访问
type Student struct{
    *Person
    int
    string
}


1.
s1 := Student{&Person{"ccc",'m',20},1,"hz"}
s1.name

2.
var s2 Student
s2.Person = new(Person)
s2.name = "ccc"

3、方法

func fun1(a int)(){
    
}

func (a int){
    
}

//带有接收者的函数
func (c int) fun2(a int) long {
    return c + b
}

a := 3

result := a.func2(4)

1、面向对象。方法:给某个类型绑定一个函数

2、值语义和引用语义

3、方法集,

4、方法的继承

5、方法的重写(方法的同名方法)

6、方法值与方法表达式(函数指针的使用)

4、接口

//定义接口类型
type Humaner interface{
    //方法,只有声明,没有实现,由别的类型(自定义类型)实现
    sayHi()
}

只要实现了接口的方法,就可以向这个接口类型进行赋值,并调用达到多态的效果

4.1 继承

type Personer interface{
    //方法,只有声明,没有实现,由别的类型(自定义类型)实现
    sing(lrc String)
}

4.2 接口转换

4.3 空接口(万能类型)

4.3 类型断言(类型查询)

4.3.1 if

if value ,ok := data.(int);ok == true

4.3.2 switch

switch value := data.(type)
上一篇下一篇

猜你喜欢

热点阅读