is this a poly Polymorphism?

Jonathan M Davis jmdavisProg at gmx.com
Sun Aug 28 18:58:30 PDT 2011


On Monday, August 29, 2011 04:50:09 hhaammaadd wrote:
> import std.stdio;
> class employee {
>          void work() {
>                  writeln("I am employee");
>          }
> }
> 
> class manager: employee {
>          void work() {
>                  writeln("I am manager");
>                  }
> }
> 
> 
> void main() {
>          employee e1 = new manager;//here
>          e1.work();
> 
>          manager m3 = new manager;//--|here
>          employee *e2 = &m3;//--------|
>          e2.work();
> 
> 
> }

Pointers are not polymorphic in D. Class references are, but if you have a 
pointer to a class, it assumes that the type is exactly that type and 
determines its function calls at compile time rather than at runtime.

- Jonathan M Davis


More information about the Digitalmars-d-learn mailing list