Christopher: (01)
EB>>
>> Now the fact that the "override" syntax gives rise to some bizarre
>> abuses is just the Goedel Corollary for Languages: "You can't allow
>> everything you want without allowing things you don't want." And
>> "thinking in Java" is no better than "thinking in Fortran" -- it is
>> one level of abstraction below that required for the task of
>> software design.
> (02)
I agree with Ed. (03)
CS>While I can quite understand the short-term convenience of it, my
>problem with method overriding is that it torpedoes the Liskov
>Substitution Principle: an instance of a subclass is no longer
>guaranteed to be an instance of the baseclass. That's more than just
>a bizarre abuse -- it's an overthrow of polymorphism as well as
>inheritance.
> (04)
I don't agree. Identity and behavior are orthogonal aspects in OO. What matter
is invariance with respect to specific operations. Preservation of identity or
any other property can only be theoretically guarantied if you define category
with morphisms. However, in practice invariance may be undecidable or hard to
compute. (05)
As of today OO is simply the closest we can come to enforcing LSP in general
programming language. (06)
_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Subscribe/Config: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx (07)
|