golang如何体现面向对象三大特征之多态?(代码片段)

Casey321 Casey321     2022-12-12     564

关键词:

多态

基本介绍

变量(实例)具有多种形态。面向对象的三大特征,在Go语言,多态特征是通过接口实现的。可以按照统一的接口来调用不同的实现。这时接口变量就呈现不同的形态。

快速入门

在前面的Usb接口案例,Usb usb,既可以接收相机变量,又可以接收手机变量,就体现了Usb接口多态特性。
代码如下:

package main

import(
	"fmt"
)

//定义一个接口
type Usb interface
	//声明了两个没有实现的方法
	Start()
	Stop()


type Phone struct



//让Phone实现Usb接口的方法
func (p Phone) Start()
	fmt.Println("手机开始工作了.....")

func (p Phone) Stop()
	fmt.Println("手机停止工作了.....")


type Camera struct


//让Camera实现Usb接口
func (c Camera) Start()
	fmt.Println("相机开始工作了.....")

func (c Camera) Stop()
	fmt.Println("相机停止工作了.....")


//计算机
type Computer struct



//编写一个方法Working,接受一个Usb接口类型的变量

func (c Computer) Working(usb Usb)
	//通过usb接口变量来调用Start和Stop方法
	usb.Start()
	usb.Stop()


func main()  
	computer := Computer
	phone := Phone
	camera := Camera

	computer.Working(phone)
	computer.Working(camera)

运行结果:

接口体现多态的两种形式

多态参数

Usb接口案例中,Usb usb既可以接收手机变量,又可以接收相机变量。

func (c Computer) Working(usb Usb)
	//通过usb接口变量来调用Start和Stop方法
	usb.Start()
	usb.Stop()


func main()  
	computer := Computer
	phone := Phone
	camera := Camera

	computer.Working(phone)
	computer.Working(camera)

多态数组

给Usb数组中,存放Phone结构体和Camera结构体变量。

package main

import(
	"fmt"
)

//定义一个接口
type Usb interface
	//声明了两个没有实现的方法
	Start()
	Stop()


type Phone struct
   name string


//让Phone实现Usb接口的方法
func (p Phone) Start()
	fmt.Println("手机开始工作了.....")

func (p Phone) Stop()
	fmt.Println("手机停止工作了.....")


type Camera struct
   name string

//让Camera实现Usb接口
func (c Camera) Start()
	fmt.Println("相机开始工作了.....")

func (c Camera) Stop()
	fmt.Println("相机停止工作了.....")



func main()  
	var usbArr [4]Usb 
	usbArr[0] = Phone"苹果"
	usbArr[1] = Camera"索尼"
	usbArr[2] = Phone"华为"
	usbArr[3] = Camera"尼康"
	
	for _,value := range usbArr
		value.Start()
		value.Stop()
	
  


运行结果:

博主首页链接:https://blog.csdn.net/weixin_44736475
原创不易,希望大家多多支持
如果文章对你有帮助,记得一键三连哦!❤️❤️❤️

golang-面向对象编程三大特性-多态

Golang-面向对象编程三大特性-多态基本介绍  变量(实例)具有多种形态。面向对象的第三大特征,在Go语言,多态特征是通过接口实现的。可以按照统一的接口来调用不同的实现。这时接口变量就呈现不同的形态。快速入门  ... 查看详情

golang如何体现面向对象三大特性之继承?(代码片段)

继承引出继承的必要性继承的基本介绍基本介绍示意图快速入门案例继承的好处继承的注意事项多重继承引出继承的必要性看一个问题,学生考试系统的程序,提出代码复用的问题。看下例代码:packagemainimport( "fmt... 查看详情

java面向对象三大特征之继承和多态(代码片段)

...转型多态代码案例总结前言  上一篇博客我们介绍了Java面向对象思想以及三大特征之一的封装。本文将介绍面向对象三大特征的剩下两个特征——继承和多态,我个人认为继承和多态是三个特征中比较重要且理解起来稍有... 查看详情

面向对象三大特征之多态(代码片段)

面向对象的三大特征:封装、继承、多态。今天重点来看一下“多态”。封装  指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。将属性或方法进行封装,防止外部程序随机访问,加强代码的安全性。继承&n... 查看详情

java面向对象编程三大特征-多态

...一、抽象类在继承中,我们已经了解了子父类的关系以及如何对子父类进行设计,如果已经存在多个实体类,再去定义父类其实是 查看详情

面向对象的三大特征之三——多态

...面的内容有过详细的记录,即重复调用的代码块—方法和面向对象的特性之二—继承。二、对象的多态性——引用类型转换。1.向上转型(自动转型)——子类对象自动转换为父类对象。1classFather2{3publicvoidspeak()4{5System.out.println( 查看详情

java中面向对象三大特性之——多态(代码片段)

...也是不一样的。可见,同一行为,通过不同的事物,可以体现出来的不同的形态。多态,描述的就是这样的状态。 多态的条件1.继承 2.方法的重写(为了让多态有意义)3.父类的引用指向子类的对象 多态的体现&nb 查看详情

面向对象三大特征(代码片段)

...前提,如果没有继承,就没有多态。封装性在Java当中的体现:方法就是一种封装关键字private也是一种封装(一旦使用了private进行修饰,那么本类当中仍然可以随意访问。但是!!!超出了本类范围之外就不能再直接访问了。那... 查看详情

java面向对象的三大特征?

...ted>包>private内部类也是一种封装多态:编译时多态,体现在向上转型和向下转型,通过引用类型判断调用哪个方法(静态分派)。运行时多态,体现在同名函数通过不同参数实现多种方法(动态分派)。希望对您有所帮助!... 查看详情

面向对象三大特征之继承,多态

//面向对象三大特性//继承//概念:子类可以继承父类的一切//方法重写:在子类里面对父类的方法进行重写//特点:单继承:一个子类只能有一个父类,一个父类可以派生出多个子类//override:重写//overload:重载,编程多态//parent::值... 查看详情

java入门二十二面向对象三大特征之多态

面向对象的三大特征:继承、封装、多态,今天学的是多态,看完后有什么不懂的地方可以问小编,也可以评论里问,我们一起解决。多态(polymorphism)在编程语言和类型论中,多态指为不同数据类型的实体提供统一的接口。多... 查看详情

面向对象三大特征之多态(代码片段)

 多态1程序中的多态;声明父类,实例化子类; 要建的类  对动物喂食packagecom.lv.tai;publicclassPerson//给动物喂食publicvoidfeed(Dogdog)System.out.println("喂食");dog.eat();publicvoidfeed(Birdbird)System.out.println("喂食");bird.eat();publicvoidfeed(Sn... 查看详情

多态★★★★★(面向对象特征之三)

函数本身就具备多态性,某一种事物有不同的具体的体现。 体现:父类引用或者接口的引用指向了自己的子类对象。//Animala=newCat();多态的好处:提高了程序的扩展性。多态的弊端:当父类引用指向子类对象时,虽然提高了... 查看详情

面向对象的三大特性之多态(代码片段)

...用同一个方法,执行的逻辑不同#多态的概念指出了对象如何通过他们的属性和动作来操作及访问,而不需要考虑他们具体的类#多态表明了动态(运行时)绑定的存在,允许重载及运行时类型确定和验证#多态是由同一个类实例化... 查看详情

测开之面向对象进阶篇・《多态》(代码片段)

面向对象三大特征面向对象编辑的三大特征:封装、继承、多态。封装:客观的失误封装成类(将数据和方法放在一个类中构成了封装)。继承:python中一个类可以继承于一个类,也可以继承多个类,... 查看详情

python入门-6面向对象编程:07面向对象三大特征(封装继承多态)-继承(代码片段)

一:面向对象三大特征介绍  Python是面向对象的语言,也支持面向对象编程的三大特性:继承、封装(隐藏)、多态。  封装(隐藏)    隐藏对象的属性和实现细节,只对外提供必要的方法。相当于将“细节封装... 查看详情

java中面向对象的三大特征是啥?

...ted>包>private内部类也是一种封装多态:编译时多态,体现在向上转型和向下转型,通过引用类型判断调用哪个方法(静态分派)。运行时多态,体现在同名函数通过不同参数实现多种方法(动态分派)。希望对您有所帮助!... 查看详情

java面对对象三大特征之继承多态(代码片段)

面对对象三大特征继承、多态继承1.继承的概念:2.继承的实现:3.继承的好处与弊端:4.super5.继承中的成员访问特点以及访问修饰符:JAVA中的访问修饰符6.方法重写以及继承的注意事项:多态1.多态的概念2.多态中成员访问特点3.多态的... 查看详情