You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Allow default methods/instance variables in interfaces #3536
This would be epic to have. Java itself had a problem with forcing the implementing class to implement the abstract methods, and solved it with default interface implementations. Sometimes, multiple inheritance is necessary to have. For example, I have a sea of crisscrossing is-a relationships to handle, with a ton of things like the following:
It's not pretty, but I also have to check many of these relationships at runtime as well. I can't use traditional single inheritance for this, either, because none of these are mutually exclusive. I would love to have ways to set default properties on these classes, to where I don't have to make a build script to generate all this. (I have 30+ base classes and 20+ interfaces with very intertwined relationships like the above.)
Now that mixins were added in the language, could someone provide an example of the interface with default method via mixin? How to write
interface Foo {
getValue: number;
}
interface Bar extends Foo {
getValue(): number { // Default implementation, may be overridden in children
return 42;
}
}
Activity
danquirk commentedon Jun 17, 2015
Definitely feels like part of a mixin story.
dead-claudia commentedon Jun 29, 2015
I'm going to close this for now, since I'm looking at the fact it's not as nice as the original proposal on the other thread.
izogfif commentedon May 31, 2018
Now that mixins were added in the language, could someone provide an example of the interface with default method via mixin? How to write