前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2022年08月 Go教学课程 035-接口和继承和转换与空接口

【愚公系列】2022年08月 Go教学课程 035-接口和继承和转换与空接口

作者头像
愚公搬代码
发布2022-09-21 10:19:32
1500
发布2022-09-21 10:19:32
举报
文章被收录于专栏:历史专栏

文章目录


一、接口和继承和转换

代码语言:javascript
复制
package main

import "fmt"

type Humaner interface {
	SayHello()
}
type Personer interface {
	Humaner
	Say()
}
type Student struct {
}

func (s *Student) SayHello() {
	fmt.Println("大家好")
}
func (s *Student) Say() {
	fmt.Println("你好")
}
func main() {
	var stu Student
	var per Personer
	per = &stu
	per.Say()
	per.SayHello() // 可以调用所继承的接口中的方法。

	var h Humaner
	h = per
	// per=h
	h.SayHello()
}
在这里插入图片描述
在这里插入图片描述

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

接口继承是出自设计模式中的一个概念。接口继承,又称子类型化。描述了一个对象什么时候能够被用来替代另一个对象。接口是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。接口可以多继承接口因为接口只定义行为并不包含类别的含义不指代具体的某类事物,

二、空接口

空接口(interface{})不包含任何的方法,正因为如此,所有的类型都实现了空接口,因此空接口可以存储任意类型的数值。

代码语言:javascript
复制
package main

import "fmt"

func main() {
	var i interface{}
	i = 123
	i = "abc"
	fmt.Println(i)
	var s []interface{}
	s = append(s, 123, "abc", 12.3)
	for j := 0; j < len(s); j++ {
		fmt.Println(s[j])
	}
}
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/08/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、接口和继承和转换
  • 二、空接口
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档