You can create instances that implement multiple Java interfaces using 
`reify` or by declaring them inline of a `defrecord` or a `deftype`. 
(See http://clojure.org/reference/datatypes for more.)

Clojure does *not* encourage or support concrete inheritance (other than of 
the limited degree provided by `proxy`) and you will generally find that to 
be a hard way to go.


On Monday, October 31, 2016 at 3:22:07 PM UTC-5, John Szakmeister wrote:
>
> I'm looking at using Clojure in an application where we make 
> fine-grained use of interfaces that help describe the capabilities of 
> an object.  We need to take several interfaces and bring them 
> together, not necessarily in an implementation, but to help define 
> what the overall interface for the object needs to support. 
>
> In Java, I could use an abstract base class to help: 
>
> public abstract class MyGear implements IFoo, IBar { 
>     // ... 
> } 
>
> How does one do such a thing in Clojure?  Does it even make sense?  I 
> could see turning some things on their head an using multi-methods for 
> this, but I thought I'd ask and see if there is some other approach I 
> may be missing. 
>
> Thanks! 
>
> -John 
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to