1. interface-new
(1) abstract
format:
type abstractName interface { method_name1 [return_type] }
(2) implment
1) species
format:
type structName struct { // body }
2) method
format:
func (instanceName structName) method_name1()[return_type] { // body }
(3) Instantiation
format:
var variable_name abstractName variable_name = new(structName)
1) invoke
variable_name.method_name1()
Reference: