GO面向对象:method的继承和重写
来源:互联网 发布:易语言攻击集群源码 编辑:程序博客网 时间:2024/06/06 05:42
一、method的继承
前面在描述struct的时候,提出了匿名字段(隐式字段)的概念,一个struct包含了一个匿名字段,那么它将继承这个匿名字段的多有字段。同样的,如果匿名字段实现了某些method,那么该struct也能调用该method。
package mainimport ("fmt")type Animal struct {eat stringspark string}type Dog struct {Animallegs int}type Cat struct {Animallegs int}func (a Animal) Spark() {fmt.Println("Any animal can spark")}func main() {animal := Animal{"food", "wowo"}animal.Spark()dog := Dog{Animal{"bone", "wangwangwang"}, 4}dog.Spark()cat := Cat{Animal{"fish", "miaomiaomiao"}, 4}cat.Spark()}
二、method的重写
上面的例子,如果Dog想要实现自己的Spark()方法怎么办?简单,和匿名字段冲突一样的道理,可以在Dog上定义一个Spark方法,重写匿名字段的Spark方法。
func (a Animal) Spark() {fmt.Println("Any animal can spark")}func (dog Dog) Spark() {fmt.Println("dog can spark:wangwangwang")}func (cat Cat) Spark() {fmt.Println("cat can spark:miaomiaomiao")}
0 0
- GO面向对象:method的继承和重写
- GO面向对象:method
- java面向对象的继承以及方法重写和重载
- Php面向对象 – 继承和重写
- Java面向对象之继承和重写
- 面向对象:继承、重写和多态
- java--面向对象之继承4(重写和重载)
- 面向对象的编程中:继承和重写结合使用的重要性
- python对象的继承和重写
- python对象的继承和重写
- ExtJS的面向对象编程(继承、重写)
- 39_面向对象_12_继承_方法的重写
- Java中面向对象的封装,继承,重载重写
- 面向对象的复用和重写
- 面向对象:多态 Polymorphism、重载、重写、继承
- JAVA面向对象2-静态;继承;重写
- 面向对象的封装和继承
- 面向对象的继承性和多态性
- 几个常见的MySQL性能测试工具
- JADX 的使用方法
- const的用法
- uva11865 Stream My Contest (朱刘算法+二分)
- sensor
- GO面向对象:method的继承和重写
- ORA-24247:network access denied by access control list (ACL) 的处理方法
- ActionBar + Fragment 详解
- 有一种尊重,叫迟三秒再关
- Android - (Afinal)框架使用
- Volley 添加Cookie和获取服务器返回的一条或多条Cookie
- Android学习笔记之:实现树形层级ListView
- Swift 类型的检査与转换(is,as,AnyObject,Any)
- 微信公众平台开发 zhphpweixinApi.class.php api-php接口类@真实可用@带案例教程