Like, if I had:
abstract class Test {
abstract void test();
}
Enter fullscreen mode
Exit fullscreen mode
coul...
For further actions, you may consider blocking this person and/or reporting abuse
What is Dart? Another JVM language?
Okay. Thanks.
I really wish there was a way to do so (for the "daring").
I have something I wanted to be considered a
java.lang.Runnable
(because it has similar functionality), the only difference is thatrun
returns anObject
, andrun
is a default method (in myfuture
library, this is called aCodeShell
).For a 'Runnable that returns an object' have a look at the Supplier class. For a runnable that takes an object as part of its method call, there's Consumer, and if you want both combined there's Function.
Thanks!
In a subclass, you can override the return type of a method: stackoverflow.com/a/14694885
Yes, but it must be a subclass of the original return type, and I seen this.
But, I don't think
void
has any subclasses, and I don't think you can subclass void (even thoughvoid
IS a class (void.class
proves)).Exactly, nothing extends
void
. I am not sure of what you want to do but could java.util.function.Supplier be a better suited interface thanRunnable
?No, because
Runnable
implies it's a piece of code that's run (one that's not seeking a result), much to the likes ofThread
(which implementsRunnable
).If
Runnable
was useless, it wouldn't have been made.I want my class to be considered part of
Runnable
because it matches the format with similar (if not (essentially) the same) methods, and because a lot of things useRunnable
in place of functions in Java.Note that a runnable doesn't 'return' void. What the 'void' return type means is that it doesn't return something.
Things like Supplier, Consumer and Function are used as much as Runnable.
An abstract class is a class that you can't instantiate, but another class can "extends" it.
You must extends class and abstract class and you must implements interface.
So you must write :
class Test2 extends Test {/.../}
Can I subclass (extend) without inheriting any of the methods?
Or can I override the return type of the only given method?