main.go 637 B

123456789101112131415161718192021222324252627282930
  1. package main
  2. type Animal interface {
  3. GetName() string
  4. GetAge() int
  5. }
  6. type Person struct {
  7. name string
  8. age int
  9. }
  10. func (p *Person) GetName() string {
  11. return p.name
  12. }
  13. func (p Person) GetAge() int {
  14. return p.age
  15. }
  16. func main() {
  17. // 定义的接口变量
  18. var ani Animal
  19. // person 实现了 Animal 接口,赋值给了 ani 变量
  20. // 但是,这里编译会通不过,错误如下:
  21. // Cannot use 'Person{ name: "DaYu", age: int(28), }' (type Person) as the type Animal Type does not implement 'Animal' as the 'GetName' method has a pointer receiver
  22. ani = Person{
  23. name: "DaYu",
  24. age: 28,
  25. }
  26. ani.GetName()
  27. ani.GetAge()
  28. }