On Tue, Nov 30, 2010 at 11:04 AM, Josh Hayes-Sheen <[email protected]> wrote: > I was under the impression that, like java, CFML objects could > implement multiple interfaces, Or extend one object and implement one > or more interfaces as well, In the line below I clarified it as > "multiple interface inheritance" but I guess I should have been more > clear.
One extend, multiple implements. Extends is inheritance. Java introduced interfaces (partly) because it chose not to offer multiple inheritance. Scala takes a different approach (traits - to allow mixins without actual inheritance). Pretty much every language that followed C++ decided not to provide multiple inheritance because of the perceived problems it supposedly causes. I worked with C++ extensively in the 90's (and I was on the ANSI standards committee for eight years) and I think the issues with multiple inheritance have been blown up out of all proportion... but these days the popular model tends to be Java's single inheritance, multiple interfaces / traits. In a fully dynamic language, interfaces are pretty much worthless (IMO) so, whilst I was an early advocate for cfinterface, I think CFML would be a better language without it - and I was never a fan of BlueDragon's approach (with attributes on cfcomponent to identify abstract classes and other Java-like stuff). Can't shut Pandora's box tho' :( -- Sean A Corfield -- (904) 302-SEAN Railo Technologies, Inc. -- http://getrailo.com/ An Architect's View -- http://corfield.org/ "If you're not annoying somebody, you're not really alive." -- Margaret Atwood -- Open BlueDragon Public Mailing List http://www.openbluedragon.org/ http://twitter.com/OpenBlueDragon official manual: http://www.openbluedragon.org/manual/ Ready2Run CFML http://www.openbluedragon.org/openbdjam/ mailing list - http://groups.google.com/group/openbd?hl=en
