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") ^