多画图,多思考 ,
概念
接口是抽象的概念,抽象的概念越说越模糊,在写程序时候我们实际的应用才能真的理解,毕竟我们操作的只是一行行代码,任何抽象的概念都应该能用程序表现出来,否则没有任何的用处。
接口类似于python面向对象的接口类,只写方法名,不具体实现 当我们有很多东西有共同行为但实现的方式不同时,我们可以直接定义接口
但接口的意义何在,这在于我们不管具体的实现者是谁,我们直接使用相同的变量就可以表示不同的实现者,打个比方:用户要调用支付接口,他不用去管是支付宝还是微信的pay方法,只需要调用pay方法,就达到了归一化,这是一种思想,就像一切皆对象,一切皆文件一样,接口只是具体实现了这个思想
package main
import "fmt"
// 使用值接收者和指针接收者的区别?
type animal interface {
move()
eat(string)
}
type cat struct {
name string
feet int8
}
// // 使用值接收者实现了接口的所有方法
// func (c cat) move() {
// fmt.Println("走猫步...")
// }
// func (c cat) eat(food string) {
// fmt.Printf("猫吃%s...\n", food)
// }
// 使用指针接收者实现了接口的所有方法
func (c *cat) move() {
fmt.Println("走猫步...")
}
func (c *cat) eat(food string) {
fmt.Printf("猫吃%s...\n", food)
}
func main() {
var a1 animal
c1 := cat{"tom", 4} // cat
c2 := &cat{"假老练", 4} // *cat
a1 = &c1 // 实现animal这个接口的是cat的指针类型,
fmt.Println(a1)
a1 = c2
fmt.Println(a1)
}
python接口类
class Payment(object):
#规定了一个兼容接口
def pay(self):
pass
#微信支付
class WeChatPay(object):
def pay(self,money):
print('微信支付了%s'%money)
#支付宝支付
class AliPay(object):
def pay(self,money):
print('支付宝支付了%s'%money)
def pay(obj,money):
obj.pay(money)
#归一
weixin = WeChatPay()
alipay = AliPay()
本文探讨了接口在编程中的重要性,如何通过接口实现多态性,如Python中的接口类和Go语言中的抽象方法。通过实例展示了如何使用接口来标准化支付接口,实现不同支付方式的统一调用。
1400

被折叠的 条评论
为什么被折叠?



