比方说,类A1,A2,...,An都扩展了抽象类B.我希望A1,...,An有一个返回类名字符串的函数.这在编译时肯定是已知的,但我想在B中实现这个函数,并使用继承,以便所有Ai:s都能获得此功能.
在java中,通过让B拥有该方法,可以很容易地完成
String getName() {
return this.getClass();
}
Run Code Online (Sandbox Code Playgroud)
或多或少.那么,我该怎么做D?此外,还有一种方法,使用特征或类似方法来确定哪些班级成员是公开的?
只是 typeof(this).stringof
但是,这在编译时是固定的,因此继承不会更改值
this.typeinfo.name
Run Code Online (Sandbox Code Playgroud)
将给出实例的类名的动态名称
http://www.d-programming-language.org/expression.html#typeidexpression
http://www.d-programming-language.org/phobos/object.html#TypeInfo_Class