Ответы пользователя по тегу Go
  • Как в GO наследовать и переопределить один метод?

    genrih_md
    @genrih_md
    Immaway
    Можно что-то вроде этого написать, будет очень похоже )

    package main
    
    import "fmt"
    
    // Doer do
    type Doer interface {
    	eat()
    }
    
    // Animal is Animal
    type Animal struct {
    	name string
    }
    
    func (animal *Animal) eat() {
    	fmt.Println("My name is", animal.name)
    }
    
    // Shark is Animal
    type Shark struct {
    	Animal
    }
    
    func (shark *Shark) eat() {
    	fmt.Println("My name is", shark.name, "and i eat seals")
    }
    
    func start(doer Doer) {
    	doer.eat()
    }
    
    func main() {
    	animal := new(Animal)
    	animal.name = "Kangaroo"
    	start(animal)
    	fmt.Println("-----------------------")
    	shark := new(Shark)
    	shark.name = "Shark"
    	start(shark)
    }
    Ответ написан
    Комментировать