See if you can do a quick survey and tell how many languages have something comparable to Java's interface. The concept of a pure abstract type like that has been around, but Kent Beck's Implementation Patterns says something like Java is one of the first "mainstream, commercially successful" languages to have "interface" in the language.
I just had to look back at a Turbo Pascal program ... it had "Interface" and "Implementation" keywords to mark off blocks of code even before OO, but I don't recall them being polymorphic.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi