This SKB is going to continue our progress in the Object Oriented Programming aspect of Scala.
abstract class
are pretty similar to trait
we saw before. But there are some slight differences.
You recognize the same keywords we learned about when we learned about trait
. You can see extends
, protected
and override
.
There are more differences but for the moment let's go one step at a time.
The main difference you can notice compare to trait
is that you are able to have a constructor directly when you extends
the abstract class
. This is pretty convenient to build simple pattern. We are going to see more about this in the context of enumeration
.
To practice the concepts of Object Oriented Programming, Try to access the fields of Shape
in the child classes. You notice that only lengthOfSides
is protected
and not the other ones. Remember class
? By default fields are private
in a class
. Try to add methods, maybe the area ?