This is a feature I've always missed in C++. Consider the code
below:
import std.stdio;
interface Logger {
void print(string msg);
}
class ConsoleLogger : Logger {
static override void print(string msg) {
writeln(msg);
}
}
void main() {
Logger logger = new ConsoleLogger;
ConsoleLogger.print("Hello, World!");
}
Such definition of ConsoleLogger fails to compile. I don't see
any drawbacks to allowing this though, except the compiler would
probably have to generate 2 methods internally.
The way it is now, you have to either define each method twice or
always create an instance.
Or am I missing an obvious solution?