我是接口的新手,并试图通过github做SOAP请求
我不明白的意思
Msg interface{}
Run Code Online (Sandbox Code Playgroud)
在这段代码中:
type Envelope struct {
Body `xml:"soap:"`
}
type Body struct {
Msg interface{}
}
Run Code Online (Sandbox Code Playgroud)
我观察到相同的语法
fmt.Println
Run Code Online (Sandbox Code Playgroud)
但不明白所取得的成就
interface{}
Run Code Online (Sandbox Code Playgroud) 我对这件事情仍然有些困惑.我到现在所发现的是
(这里已经提出了类似的问题,但我还有其他一些观点.)
接口是仅抽象方法和最终字段的集合.
Java中没有多重继承.
接口可用于在Java中实现多重继承.
继承的一个优点是我们可以在派生类中使用基类代码而无需再次编写它.可能这是继承在那里最重要的事情.
现在..
Q1.由于接口只有抽象方法(没有代码)所以我们怎么说如果我们实现任何接口那么它是继承?我们没有使用它的代码.
Q2.如果实现接口不是继承,那么如何使用接口来实现多重继承?
Q3.无论如何使用Interfaces有什么好处?他们没有任何代码.我们需要在我们实现它的所有类中反复编写代码.
那么为什么要制作接口呢?
注意:我找到了一个接口有用的案例.它的一个例子就像在Runnable接口中我们有public void run()方法,我们在其中定义线程的功能,并且内置编码,该方法将作为单独的线程运行.所以我们只需要编写线程中的代码,Rest是预定义的.但是这个东西也可以用抽象类和所有东西来实现.
那么使用接口的确切好处是什么?我们使用Interfaces实现了多重继承吗?
最近有人问我一个问题,Golang 和 Java 在interface 上有什么区别?
我知道存在一些“语法糖级别”差异,我感兴趣的是地下的任何东西,比如 Golang 和 Java 是如何实现接口的?最大的区别是什么?哪一种更有效率?为什么?
任何人都可以发布有关此主题的博客链接或源代码吗?源代码更好。
谢谢。
Go语言将接口类型作为功能,类似于C风格的接口.但是,Go的接口类型似乎没有被强制执行 - 它们只是定义协议而不实际应用于类型.由于它们没有强制执行,使用接口仍然是个好主意吗?
当附近发生爆炸时,我正试图代表靠近窗户的人戴眼镜.main是爆炸期间应该做什么的草图.有些东西应该收集爆炸附近的物体清单,并为每个物体做特定的事情(例如粉碎或熔化).玻璃和窗户如预期的那样破碎,但出于某种原因,人类也会破碎.为什么?
package main
import "fmt"
type Human struct { Glasses }
type Glasses struct {}
type Shatterable interface { shatter() }
func (g Glasses) shatter() {}
type Window struct {}
func (w Window) shatter() {}
func main() {
h := Human{Glasses{}}
objectsInProximity := []interface{}{h,h.Glasses,Window{}}
for _,o := range objectsInProximity {
shatter(o)
}
}
func shatter(i interface{}) {
s, ok := i.(Shatterable)
if ok {
fmt.Printf("shattering a %T\n", s)
s.shatter()
}
}
Run Code Online (Sandbox Code Playgroud)
$ go run a.go
shattering a main.Human …Run Code Online (Sandbox Code Playgroud)