本文主要使用Go对面向对象的三大属性进行了练习
封装:外界不需要知道内部实现,只需要使用方法进行使用即可;
继承:子类可以调用父类的属性和方法;
多态:一种事物多种形态,父类指向子类对象;
//object oriented programming package main import "fmt" //1.封装; type person struct { name string age int } func (p *person) setName(n string){ p.name = n } func (p *person) setAge(a int){ p.age = a } func (p person) getName() string{ return p.name } func (p person) getAge() int{ aa := p.age return aa } func encapsulation(){ fmt.Println("hello encapsulation! ") //p := person{} var p person p.setAge(10) p.setName("fanguohao") fmt.Println(p.getAge()) fmt.Println(p.getName()) } //2.继承 type student struct { person class int gender string } func Inheritance(){ fmt.Println("hello Inheritance!") s := student{} s.setName("xiaoge") s.setAge(22) s.class = 4 s.gender = "boy" fmt.Println(s.getAge()) fmt.Println(s.getName()) } //3.多态 type Animal interface { eat() } type Dog struct { name string } func (d Dog) eat(){ fmt.Println(d.name,"is eating something") } //---------------------------------------------// type cat struct { name string } func (c cat) eat(){ fmt.Println(c.name,"is eating something") } func Polymorphism() { fmt.Println("hello polymorphism!") var a1 Animal = Dog{"旺财"} var a2 Animal = cat{"花花"} a1.eat() a2.eat() } func main(){ //encapsulation() //Inheritance() Polymorphism() }