go_15:golang中面向对象的三大特性

星火燎原智勇 星火燎原智勇     2022-08-30     396

关键词:

  有过 JAVA 语言学习经历的朋友都知道,面向对象主要包括了三个基本特征:封装、继承和多态。封装,就是指运行的数据和函数绑定在一起,JAVA 中主要是通过 super 指针来完成的;继承,就是指 class 之间可以相互继承属性和函数;多态,主要就是用统一的接口来处理通用的逻辑,每个 class 只需要按照接口实现自己的回调函数就可以了。

  作为集大成者的 Go 语言,自然不会在面向对象上面无所作为。相比较 java、C#、C++ 等面向对象语言而言,它的面向对象更简单,也更容易理解。下面,我们不妨用三个简单的例子来说明一下 go 语言下的面向对象是什么样的。

封装特性

package main  

import "fmt"  

type data struct {  
    val int  
}  

func (p_data *data) set(num int) {  
    p_data.val = num  
}  

func (p_data *data) show() {  
    fmt.Println(p_data.val)  
}  

func main() {  
    p_data := &data{4}  
    p_data.set(5)  
    p_data.show()  
}  

集成特性

package main  

import "fmt"  

type parent struct {  
    val int  
}  

type child struct {  
    parent  
    num int  
}  

func main() {  
    var c child  

    c = child{parent{1}, 2}  
    fmt.Println(c.num)  
    fmt.Println(c.val)  
}

多台特性

package main  

import "fmt"  

type act interface {  
    write()  
}  

type xiaoming struct {  

}  

type xiaofang struct {  

}  

func (xm *xiaoming) write() {  
    fmt.Println("xiaoming write")  
}  

func (xf *xiaofang) write() {  
    fmt.Println("xiaofang write")  
}  

func main() {  
    var w act;  

    xm := xiaoming{}  
    xf := xiaofang{}  

    w = &xm  
    w.write()  

    w = &xf  
    w.write()  
}

 

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

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

面向对象三大特性

面向对象三大特性一、继承1、定义:继承是一种创建新类的方式,在python中新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类2、继承的使用场景:什么是什么3、查看父类的双下方法:Foo... 查看详情

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

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

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

#面向对象的三大特性之封装#第一个层面的封装:类就是麻袋,这本身就是一种封装#第二个层面的封装:类中定义私有的,只在类内部使用,外部无法访问#约定一:任何以单下划线开头的名字都应该是内部的,私有的#约定二:... 查看详情

面向对象三大特性——封装(含property)(代码片段)

  封装是面向对象的特征之一,是对象和类概念的主要特性。封装概念  封装就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。隐藏属性  在python中... 查看详情

day18面向对象三大特性之继承

...类:吃喝睡,爬树#狗类:吃喝睡,看家#一。通过之前对面向对象的学习,我们可以轻易的定义出这两个类来:classCat:def__init__(self 查看详情

面向对象的三大特性————封装

1,封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式。封装的原则:1,将不需要对外提供的内容都隐藏起来      2,把属性都隐藏,提供公共方法对其访问。1.1私有变量和私有方法classPerson:__key=123#私有静态... 查看详情

面向对象的三大特性:封装

封装:1,广义的封装:    给对象封装属性,给类中封装静态字段:2,狭义的封装:私有制.私有成员:    私有成员:      静态私有字段,静态私有方法,静态私有对象属性.    只能在自己类中访问,不能再类的外... 查看详情

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

一、封装最主要的作用:隐藏对象的属性和实现细节,仅对外提供公共访问方式封装原则将不需要对外提供的内容都隐藏起来把属性都隐藏,提供公共方法对其访问在python中用双下划线开头的方式将属性隐藏起来(设置成私有的... 查看详情

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

#面向对象的三大特性之多态#多态由不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同#多态的概念指出了对象如何通过他们的属性和动作来操作及访问,而不需要考虑他们具体的类#多态表明了动态(运行时)绑定... 查看详情

面向对象三大特性之——继承(代码片段)

面向对象三大特性之——继承继承--需要解决代码的重复继承语法:classA:passclassB(A):passB继承A,A是父类,B是子类A是父类(基类超类)B是子类(派生类)子类可以使用父类中的:方法静态变量classAnimal:def__init__(self,name):self.name=namedefea... 查看详情

面向对象三大特性-继承(代码片段)

一、什么是继承:  继承就是一种新建类的一种方式。二、为什么要用继承  减少代码的冗余通过代码来讲解classStudent:def__init__(self,name,age,sex):self.name=nameself.age=ageself.sex=sexdefchoice_course(self):print(‘%sischoicecoursing‘%self.name)clas... 查看详情

有关类的相关知识面向对象的三大特性!!!!

面向对象的三大特性封装:当一些属性不想被直接操作的时候,可以把属性私有化,并提供一个公有化方法,来对这个属性进行封装;继承:子类继承父类,子类可以有父类的所有东西,包括属性和方法;多态:在一个类中,不... 查看详情

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

封装基本介绍封装介绍封装的好处golang如何体现封装封装的实现基本介绍Golang仍然有面向对象编程的继承、封装和多态的特性,只是实现的方法和其它OOP语言不一样,下面我们来看看Golang是如何实现封装的。封装介绍封... 查看详情

面向对象三大特性之继承(代码片段)

1:继承,顾名思义就是子代继承父辈的一些东西,在程序中也就是子类继承父类的属性和方法。1#Author:Kelvin2#Date:2019/1/1618:5734classFather:5money=100067def__init__(self,name):8print("父类的init方法...")9self.name=name1011defteach(self):12print("%s正在教... 查看详情

面向对象的三大特性

 一、继承1.1什么是继承?继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类python中类的继承分为:单继承和多继承classParentClass1:#定义父类passc... 查看详情

golang-struct

Golang-struct  Golang语言面向对象编程说明    1)Golang也支持面向对象编程(OOP),但是和传统的面向对象编程有区别,并不是纯粹的面向对象语言。所以我们说Golang支持面向对象编程特性是比较准确的。    2)Golang没有类(c... 查看详情

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

多态基本介绍快速入门接口体现多态的两种形式多态参数多态数组基本介绍变量(实例)具有多种形态。面向对象的三大特征,在Go语言,多态特征是通过接口实现的。可以按照统一的接口来调用不同的实现。这... 查看详情