2
0

abstract_methods.gd 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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_rest_param(...args: Array) -> int
  7. @abstract func func_with_semicolon() -> int;
  8. @abstract func func_1() -> int; @abstract func func_2() -> int
  9. @abstract func func_without_return_type()
  10. func print_text_1() -> void:
  11. print(get_text_1())
  12. @abstract class B extends A:
  13. func get_text_1() -> String:
  14. return "text_1b"
  15. func print_text_2() -> void:
  16. print(get_text_2())
  17. class C extends B:
  18. func get_text_2() -> String:
  19. return "text_2c"
  20. func func_with_param(param: int) -> int: return param
  21. func func_with_rest_param(...args: Array) -> int: return args.size()
  22. func func_with_semicolon() -> int: return 0
  23. func func_1() -> int: return 0
  24. func func_2() -> int: return 0
  25. func func_without_return_type(): pass
  26. @abstract class D extends C:
  27. @abstract func get_text_1() -> String
  28. func get_text_2() -> String:
  29. return super() + " text_2d"
  30. class E extends D:
  31. func get_text_1() -> String:
  32. return "text_1e"
  33. func test():
  34. var c := C.new()
  35. c.print_text_1()
  36. c.print_text_2()
  37. var e := E.new()
  38. e.print_text_1()
  39. e.print_text_2()