Is inherited class a derivative work?

Rod Dixon, J.D., LL.M. rdixon84 at
Thu Oct 25 03:23:37 UTC 2001

The `right to derive classes`? I thought someone explained, quite thoughtfully, that this was NOT a matter of concern under copyright law. In addition, I think it is unadvisable to make object-oriented programming practices like inheritance, encapsulation, or polymorphism the subject matter of open source licensing. 


-----Original Message-----
    From: "Michael Beck" <mbeck1 at>
    Sent: 10/24/01 6:07:53 AM
    To: "license-discuss at" <license-discuss at>
    Subject: RE: Is inherited class a derivative work?
    > -----Original Message-----
    > From: chris.gray at [mailto:chris.gray at]
    > Sent: Monday, October 22, 2001 06:06
    > Every implementation of the Java language contains the
    > non-abstract class
    > java.util.Properties, which does in fact implement all the methods of
    > Dictionary.
    > So let us suppose that I create a class
    > com.acunia.AcuniaProperties which
    > extends java.util.Properties, and that this is packaged
    > together with some
    > other classes in a .jar file.  I then hand this over to our
    > sales force, who are
    > liable to use it in a customer demonstration.  I have no way
    > of knowing whether
    > they will demonstrate it running on our own VM (Wonka), IBM's
    > J9, Kaffe (as a component of Pocket Linux), HP's Chai, something
    > licensed  from Sun's pJava,
    > or something I've never even heard of.  Can it really be that
    > by creating my
    > little class I have actually changed the design blueprints of
    > products from
    > four different companies, without even knowing it?
    I would distinguish here between creating a derived class, and using a
    particular implementation of the original class' interface at the run-time.
    I would assume that you don't extend a class in a vacuum, i.e. that you take an
    actual java.util.Properties class and extend it. If the author gives you the
    right to create derived classes, then you are OK.
    Now comes the "use" of particular class at the run-time. It would seem to me
    that at this moment you can use any concrete class, as long as the author gives
    you the right to create derived classes, i.e. if Kaffe, Chai, and J9 give you
    the right to derive new classes, you can use anyone of them, even if you
    originally created the inherited class from Kaffe's java.util.Properties.
    Or you can (if possible in Java) compile a file with the original class you have
    used, so the program doesn't have to look for it, but uses the one provided by
    license-discuss archive is at

license-discuss archive is at

More information about the License-discuss mailing list