KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have an abstract class : abstract class Foo(...){ def bar1(f : Foo) : Boolean def bar2(f : Foo) : Foo } multiple classes extend Foo and override the methods class FooImpl(...) extends Foo{ override def bar1(f : Foo) : Boolean { ... } override def bar2(f : Foo) : Foo { ... } } Is it possible, using generics (or something) to make the overriding methods have the parametertype of the subclass implementing it? Like this : class FooImpl(...) extends Foo{ override def bar1(f : FooImpl) : Boolean { ... } override def bar2(f : FooImpl) : FooImpl { ... } } I was thinking something along the line of the following, but that didn't seem to work... abstract class Foo(...){ def bar1[T <: Foo](f : T) : Boolean def bar2[T <: Foo](f : T) : T } class FooImpl(...) extends Foo{ override def bar1[FooImpl](f : FooImpl) : Boolean { ... } override def bar2[FooImpl](f : FooImpl) : FooImpl{ ... } } Any help is much appreciated! Thank you.
Tags (comma-separated)
Save Edits
Cancel