abstract_methods.gd 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. abstract class A:
  2. abstract func get_text_1() -> String
  3. abstract func get_text_2() -> String
  4. # No `UNUSED_PARAMETER` warning.
  5. abstract func func_with_param(param: int) -> int
  6. abstract func func_with_semicolon() -> int;
  7. abstract func func_1() -> int; abstract func func_2() -> int
  8. abstract func func_without_return_type()
  9. func print_text_1() -> void:
  10. print(get_text_1())
  11. abstract class B extends A:
  12. func get_text_1() -> String:
  13. return "text_1b"
  14. func print_text_2() -> void:
  15. print(get_text_2())
  16. class C extends B:
  17. func get_text_2() -> String:
  18. return "text_2c"
  19. func func_with_param(param: int) -> int: return param
  20. func func_with_semicolon() -> int: return 0
  21. func func_1() -> int: return 0
  22. func func_2() -> int: return 0
  23. func func_without_return_type(): pass
  24. abstract class D extends C:
  25. abstract func get_text_1() -> String
  26. func get_text_2() -> String:
  27. return super() + " text_2d"
  28. class E extends D:
  29. func get_text_1() -> String:
  30. return "text_1e"
  31. func test():
  32. var c := C.new()
  33. c.print_text_1()
  34. c.print_text_2()
  35. var e := E.new()
  36. e.print_text_1()
  37. e.print_text_2()