by Player701 » Thu Nov 21, 2019 1:29 am
ZScript allows defining abstract classes, intended to serve as parents for one or more concrete subclasses with shared logic and/or interface. As in many other programming languages, attempting to create an instance of an abstract class will cause an error:
Code: Select all
class TestClass abstract
{
static TestClass Create()
{
return new('TestClass'); // Error: Cannot instantiate abstract class TestClass
}
}
While there's no doubt that this behavior is certainly intended, there is also an inconsistency: abstract classes can still be instantiated with the "summon" console command, provided that they inherit from Actor. This should probably not be allowed.
(As a side note, I wish there were real abstract methods in ZScript...)
ZScript allows defining abstract classes, intended to serve as parents for one or more concrete subclasses with shared logic and/or interface. As in many other programming languages, attempting to create an instance of an abstract class will cause an error:
[code]class TestClass abstract
{
static TestClass Create()
{
return new('TestClass'); // Error: Cannot instantiate abstract class TestClass
}
}[/code]
While there's no doubt that this behavior is certainly intended, there is also an inconsistency: abstract classes can still be instantiated with the "summon" console command, provided that they inherit from Actor. This should probably not be allowed.
(As a side note, I wish there were real abstract methods in ZScript...)