http://qs1969.pair.com?node_id=489614


in reply to Re: Documenting non-public OO components
in thread Documenting non-public OO components

If I see the heading "SUBCLASSING", that indicates to me that all the information below is public, so I can write my own subclass. Am I missing something?

--
Marvin Humphrey
Rectangular Research ― http://www.rectangular.com

Replies are listed 'Best First'.
Re^3: Documenting non-public OO components
by Ven'Tatsu (Deacon) on Sep 06, 2005 at 18:39 UTC

    In Java speek 'private' means only the class that declaired it can use it, 'public' means any one of any class can use it. Java also has the notion of 'protected' and 'package', basicly any subclass has access and any class in the same package has access respectivly.

    The "SUBCLASSING" section would declair 'protected' (by convention only) methods. So it would not truely be 'public' in the sense of any class may call them, but it could be seen as 'public' in the sense that you have published their specs for all to see.

      My main concern is to indicate which parts of the libary non-developers may depend upon and which parts they must avoid using. I suppose it is true that any protected or even package components may be accessed if you hack your class just right in Java, but the presence of a protected method in a class which is not explicity intended to be subclassed would not lead me to believe that it was OK to subclass it.

      The problem that I have with a "SUBCLASSING" heading is that, if it's present it seems to indicate that the library allows users, not just developers, to subclass that class. That wouldn't always be the case.

      --
      Marvin Humphrey
      Rectangular Research ― http://www.rectangular.com

        IMO 'SUBCLASSING' implies developers extending the library rather than people simply using it, but I'll admit that's an interpretation...

        Chris
        M-x auto-bs-mode

        the library allows users, not just developers, to subclass that class. That wouldn't always be the case.

        Wouldn't it? The view I take is that any time you have subclassed, you automatically become a developer. Is there any other reason to subclass than to extend or further develop a class?