Thread overview
Interface reference
Jul 05, 2008
Michael Koehmstedt
Jul 05, 2008
Kirk McDonald
Jul 05, 2008
Michael Koehmstedt
Jul 06, 2008
Manfred_Nowak
July 05, 2008
I just read this in the book "Learn to Tango with D", page 73:

"It is not possible to instantiate interfaces, but you can have references to class instances through the type of an interface that the class implements."

Could anyone give an example of what this means?



July 05, 2008
Michael Koehmstedt wrote:
> I just read this in the book "Learn to Tango with D", page 73:
> 
> "It is not possible to instantiate interfaces, but you can have references to class instances through the type of an interface that the class implements."
> 
> Could anyone give an example of what this means?
> 
> 
> 

interface I {
    void foo();
}

class C : I {
    override void foo() {}
}

void main() {
    I i = new C; // reference to class instance of interface type
    i.foo();
}

-- 
Kirk McDonald
http://kirkmcdonald.blogspot.com
Pyd: Connecting D and Python
http://pyd.dsource.org
July 05, 2008
Thanks Kirk, a simple example is worth a thousand words!

Kirk McDonald Wrote:

> Michael Koehmstedt wrote:
> > I just read this in the book "Learn to Tango with D", page 73:
> > 
> > "It is not possible to instantiate interfaces, but you can have references to class instances through the type of an interface that the class implements."
> > 
> > Could anyone give an example of what this means?
> > 
> > 
> > 
> 
> interface I {
>      void foo();
> }
> 
> class C : I {
>      override void foo() {}
> }
> 
> void main() {
>      I i = new C; // reference to class instance of interface type
>      i.foo();
> }
> 
> -- 
> Kirk McDonald
> http://kirkmcdonald.blogspot.com
> Pyd: Connecting D and Python
> http://pyd.dsource.org

July 06, 2008
Kirk McDonald wrote:

> // reference to class instance of interface type

... which can be understood as being different from what Michael cited.

-manfred