Go-一个定义类及继承此类的例子

1、代码

package main

import "fmt"

type Person struct {
	name string
	sex  string
	age  int
}

/*
创建此方法默认会创建 func (s Person) getName() string{}
*/
func (s *Person) getName() string {
	return s.name
}

func (s *Person) setName(newName string) {
	s.name = newName
}

func (s *Person) getSex() string {
	return s.sex
}

func (s *Person) setSex(newSex string) {
	s.sex = newSex
}

func (s *Person) getAge() int {
	return s.age
}

func (s *Person) setAge(newAge int) {
	s.age = newAge
}

//用于之后的printf的输出
func (s Person) String() string {
	x := "name:" + s.name + " sex:" + s.sex + " age:" + fmt.Sprintf("%d", s.age)
	return x
}

//超人
type SuperPerson struct {
	Person //伪继承
}

func (s *SuperPerson) fly() {
	x := "name:" + s.name + " fly!"
	fmt.Println(x)
}

//
func main() {
	fmt.Println("普通人开始表演....")
	var p = new(Person)
	p.setName("xxx")
	p.setSex("xxx")
	p.setAge(1)
	fmt.Println((*p))

	//s := fmt.Sprintf("%v", p)
	//fmt.Println(s)

	fmt.Println("getname:", p.getName())
	fmt.Println("getSex:", p.getSex())
	fmt.Println("getAge:", p.getAge())

	fmt.Println("超人开始表演....")
	var sp = new(SuperPerson)
	sp.setName("sx")
	sp.setSex("sx")
	sp.setAge(10000)
	fmt.Println((*sp))
	sp.fly()
}

2、输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫忘输赢

莫忘输赢 - 收钱袋

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值