A class can inherit the fields and methods from another class. By doing so, every public field and method will be visible to the child class. It can be useful in cases where one class is a superset of the other, and you feel that it is not useful to copy all of the code from one class to another. If necessary, the behavior of certain methods can be changed in the child class by using the `@override` keyword.
Let's say we have a class `TV` with a lot of code. Then the class `SmartTV` can have all of the features of `TV` plus its own smart features.
`SmartTV` can be created with **much** less code, and still have all of the base functionality of `TV`.
Notice that `@override` changes the behavior of the `disconnectPower` method.
> If you override a method, you can still use the method from the parent class by writing `super.` before invoking the method: `super.disconnectPower()`.