go语言(十一)----面向对象继承

一、面向对象继承

  1. 写一个父类
package main

import "fmt"

type Human struct {
   
	name string
	sex string
}

func (this *Human) Eat() {
   
	fmt.Println("Human.Eat()...")
}

func (this *Human) Walk() {
   
	fmt.Println("Human.Walk()...")
}

func main() {
   

	h := Human{
   "zhang3","femal"}
	h.Eat()
	h.Walk()

}

在这里插入图片描述

  1. 子类继承 父类
type SuperMan struct {
   
	Human //superman类继承了human类的方法
	level int
}

  1. 子类的新方法
//重定义父类的方法Eat()
func (this *SuperMan) Eat() {
   
	fmt.Println("SuperMan.Eat()...")
}

//子类的新方法
func (this *SuperMan) Fly() {
   
	fmt.Println("Superman.Fly()...")
}
  1. 定义子类
    两种方法:
    第一种:
s :=SuperMan{
   Human{
   "li4","female"},88}

第二种:

var s SuperMan
	s.name = "lis4"
	s.sex = "female"
	s.level = 88
  1. 子类继承父类的使用
package main

import "fmt"

type Human struct {
   
	name string
	sex string
}

func (this *Human) Eat() {
   
	fmt.Println("Human.Eat()...")
}

func (this *Human) Walk() {
   
	fmt.Println("Human.Walk()...")
}
//重定义父类的方法Eat()
func (this *SuperMan) Eat() {
   
	fmt.Println("SuperMan.Eat()...")
}

//子类的新方法
func (this *SuperMan) Fly() {
   
	fmt.Println("Superman.Fly()...")
}


type SuperMan struct {
   
	Human //superman类继承了human类的方法
	level int
}

func (this *SuperMan) Print()  {
   

	fmt.Println("name = ",this.name)
	fmt.Println("sex = ",this.sex)
	fmt.Println("level = ",this.level)

}

func main() {
   

	h := Human{
   "zhang3","femal"}
	h.Eat()
	h.Walk()

	//定义一个子类对象
	//s :=SuperMan{Human{"li4","female"},88}
	var s SuperMan
	s.name = "lis4"
	s.sex = "female"
	s.level = 88

	s.Walk() //父类的方法
	s.Eat() //子类的方法
	s.Fly() //子类的方法

	//打印出来
	s.Print()

}

在这里插入图片描述

相关推荐

  1. 面向对象继承

    2024-01-21 06:42:02       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-21 06:42:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-21 06:42:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-21 06:42:02       82 阅读
  4. Python语言-面向对象

    2024-01-21 06:42:02       91 阅读

热门阅读

  1. axios封装-reques.js

    2024-01-21 06:42:02       52 阅读
  2. Mybatis的占位符中使用的名称

    2024-01-21 06:42:02       58 阅读
  3. 聊聊PowerJob的AliOssService

    2024-01-21 06:42:02       47 阅读
  4. centos 安装rabbitmq集群

    2024-01-21 06:42:02       45 阅读
  5. logstack 日志技术栈-01-ELK/EFK 入门介绍 ELK+filebeta

    2024-01-21 06:42:02       55 阅读
  6. 【DevOps-09-1】Jenkins流水线任务初体验

    2024-01-21 06:42:02       62 阅读
  7. 编程笔记 html5&css&js 049 CSS列表

    2024-01-21 06:42:02       56 阅读
  8. 24秋招,帆软测试开发工程师一面

    2024-01-21 06:42:02       50 阅读
  9. 笨蛋学设计模式行为型模式-策略模式【16】

    2024-01-21 06:42:02       48 阅读