Weird behavior of "this" in a subclass, I think?

seashell86 via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Jul 15 18:20:10 PDT 2015


On Thursday, 16 July 2015 at 00:39:29 UTC, H. S. Teoh wrote:
> On Thu, Jul 16, 2015 at 12:18:30AM +0000, seashell86 via 
> Digitalmars-d-learn wrote:
>> [...]
>
> The reason is that class variables cannot be overridden, only 
> class methods can.
>
> If you want to simulate overriding of class variables, you can 
> use a @property method instead:
>
> 	class Animal {
> 		@property string voice() { return "Wah!"; }
> 		void speak() { writeln(voice); }
> 	}
>
> 	class Dog : Animal {
> 		override @property string voice() { return "Whoof!"; }
> 	}
>
>
> T

Wow, a quick and thorough response! Thank you!  I'm actually 
curious as to why this feature would not be in the language?  Is 
it for performance reasons?


More information about the Digitalmars-d-learn mailing list