def main
(args
: Array
[String
]) { val l
= List
(new AClass, AnObject, ACompanionExample
) l.map(a => a.autocorrect) // we're always calling autocorrect on the instance
.foreach(println)
}
}
def autocorrect
: String
// this is abstract }
def autocorrect
= "AClass autocorrect" }
def autocorrect
= "AnObject autocorrect" }
def autocorrect
= "CompanionExample autocorrect" }
Cm9iamVjdCBNYWluIHsKICBkZWYgbWFpbihhcmdzOiBBcnJheVtTdHJpbmddKSB7CiAgICAgIHZhbCBsID0gTGlzdChuZXcgQUNsYXNzLCBBbk9iamVjdCwgQUNvbXBhbmlvbkV4YW1wbGUpCiAgICAgIGwubWFwKGEgPT4gYS5hdXRvY29ycmVjdCkgLy8gd2UncmUgYWx3YXlzIGNhbGxpbmcgYXV0b2NvcnJlY3Qgb24gdGhlIGluc3RhbmNlCiAgICAgIC5mb3JlYWNoKHByaW50bG4pCiAgfQoKfQoKdHJhaXQgQXV0b2NvcnJlY3RvciB7CiAgZGVmIGF1dG9jb3JyZWN0OiBTdHJpbmcgLy8gdGhpcyBpcyBhYnN0cmFjdAp9CgpjbGFzcyBBQ2xhc3MgZXh0ZW5kcyBBdXRvY29ycmVjdG9yIHsKICBkZWYgYXV0b2NvcnJlY3QgPSAiQUNsYXNzIGF1dG9jb3JyZWN0Igp9CgpvYmplY3QgQW5PYmplY3QgZXh0ZW5kcyBBdXRvY29ycmVjdG9yIHsKICBkZWYgYXV0b2NvcnJlY3QgPSAiQW5PYmplY3QgYXV0b2NvcnJlY3QiCn0KCmNsYXNzIEFDb21wYW5pb25FeGFtcGxlCm9iamVjdCBBQ29tcGFuaW9uRXhhbXBsZSBleHRlbmRzIEF1dG9jb3JyZWN0b3IgewogIGRlZiBhdXRvY29ycmVjdCA9ICJDb21wYW5pb25FeGFtcGxlIGF1dG9jb3JyZWN0Igp9Cg==