2025-05-14 22:52:19 +03:00
|
|
|
abstract class A:
|
|
|
|
|
abstract func get_text_1() -> String
|
|
|
|
|
abstract func get_text_2() -> String
|
|
|
|
|
|
|
|
|
|
# No `UNUSED_PARAMETER` warning.
|
|
|
|
|
abstract func func_with_param(param: int) -> int
|
2025-03-30 12:59:05 +03:00
|
|
|
abstract func func_with_rest_param(...args: Array) -> int
|
2025-05-14 22:52:19 +03:00
|
|
|
abstract func func_with_semicolon() -> int;
|
|
|
|
|
abstract func func_1() -> int; abstract func func_2() -> int
|
|
|
|
|
abstract func func_without_return_type()
|
|
|
|
|
|
|
|
|
|
func print_text_1() -> void:
|
|
|
|
|
print(get_text_1())
|
|
|
|
|
|
|
|
|
|
abstract class B extends A:
|
|
|
|
|
func get_text_1() -> String:
|
|
|
|
|
return "text_1b"
|
|
|
|
|
|
|
|
|
|
func print_text_2() -> void:
|
|
|
|
|
print(get_text_2())
|
|
|
|
|
|
|
|
|
|
class C extends B:
|
|
|
|
|
func get_text_2() -> String:
|
|
|
|
|
return "text_2c"
|
|
|
|
|
|
|
|
|
|
func func_with_param(param: int) -> int: return param
|
2025-03-30 12:59:05 +03:00
|
|
|
func func_with_rest_param(...args: Array) -> int: return args.size()
|
2025-05-14 22:52:19 +03:00
|
|
|
func func_with_semicolon() -> int: return 0
|
|
|
|
|
func func_1() -> int: return 0
|
|
|
|
|
func func_2() -> int: return 0
|
|
|
|
|
func func_without_return_type(): pass
|
|
|
|
|
|
|
|
|
|
abstract class D extends C:
|
|
|
|
|
abstract func get_text_1() -> String
|
|
|
|
|
|
|
|
|
|
func get_text_2() -> String:
|
|
|
|
|
return super() + " text_2d"
|
|
|
|
|
|
|
|
|
|
class E extends D:
|
|
|
|
|
func get_text_1() -> String:
|
|
|
|
|
return "text_1e"
|
|
|
|
|
|
|
|
|
|
func test():
|
|
|
|
|
var c := C.new()
|
|
|
|
|
c.print_text_1()
|
|
|
|
|
c.print_text_2()
|
|
|
|
|
|
|
|
|
|
var e := E.new()
|
|
|
|
|
e.print_text_1()
|
|
|
|
|
e.print_text_2()
|