Real OOP with D

Ozan via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Aug 17 23:16:11 PDT 2015


On Monday, 17 August 2015 at 06:10:38 UTC, Rikki Cattermole wrote:
> On 17/08/2015 5:57 p.m., Ozan wrote:
>> Hi
>>
[...]
>
> import std.stdio;
> abstract class Family { void greeting(); }
> class Dad : Family { void greeting() { writeln("I'm dad"); } }
> class Boy : Family { void greeting() { writeln("I'm daddy's 
> boy"); } }
>
> void main() {
> 	Family dad = new Dad;
> 	Family boy = new Boy;
> 	dad.greeting;
> 	boy.greeting;
> }
>
> I'm confused how this isn't real OOP?

Replace 'real' with 'theoretical' OOP. Every instance of a class 
(object) is like an independent black box. Every public message 
(method / function) of the class definition could be called when 
ever you want. Variables are like pointers to objects. With 
inheritance and overriding you're losing in class type 
implementations of OOP a lot of 'theoretical'  flexibility. I was 
asking for a possibility to avoid this.

Regards Ozan


More information about the Digitalmars-d-learn mailing list