Like, if I had:
abstract class Test {
abstract void test();
}
could I do
class Test2 implements Test {/*...*/}
?
Like, if I had:
abstract class Test {
abstract void test();
}
could I do
class Test2 implements Test {/*...*/}
?
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (14)
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 thatrunreturns anObject, andrunis a default method (in myfuturelibrary, 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
voidhas any subclasses, and I don't think you can subclass void (even thoughvoidIS a class (void.classproves)).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
Runnableimplies it's a piece of code that's run (one that's not seeking a result), much to the likes ofThread(which implementsRunnable).If
Runnablewas useless, it wouldn't have been made.I want my class to be considered part of
Runnablebecause it matches the format with similar (if not (essentially) the same) methods, and because a lot of things useRunnablein 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?