scala> /////////////////////////////////////
scala> // Overriding a final method #234
scala> /////////////////////////////////////
scala> abstract class SubjectInfo(name: String) {
| def mark: Int = 35
| //final modifier to a 'Method'
| final def date: String = "2016/10/10"
| }
defined class SubjectInfo
scala>
scala> // This does not compile
scala> class Math extends SubjectInfo("math") {
| override def date = "2016/10/15"
| }
<console>:44: error: overriding method date in class SubjectInfo of type => String;
method date cannot override final member
override def date = "2016/10/15"
^
scala>
scala> /////////////////////////////////////
scala> // Overriding a final class
scala> /////////////////////////////////////
scala> final class SubjectInfo(name: String) {
| def mark: Int = 35
| //final modifier to a 'Method'
| def date: String = "2016/10/10"
| }
defined class SubjectInfo
scala>
scala> class Math extends SubjectInfo("math")
<console>:43: error: illegal inheritance from final class SubjectInfo
class Math extends SubjectInfo("math")
^