VOOZH about

URL: https://www.geeksforgeeks.org/scala/abstract-classes-in-scala/

⇱ Abstract Classes in Scala - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Abstract Classes in Scala

Last Updated : 11 Jul, 2025
Abstraction is the process to hide the internal details and showing only the functionality. In Scala, abstraction is achieved by using an abstract class. The working of the Scala abstract class is similar to Java abstract class. In Scala, an abstract class is constructed using the abstract keyword. It contains both abstract and non-abstract methods and cannot support multiple inheritances. A class can extend only one abstract class. Syntax:
abstract class class_name
{
// code..
}
The abstract methods of abstract class are those methods which do not contain any implementation. Or in other words, the method which does not contain body is known as an abstract method. Syntax:
def function_name()
Example: Output:
Author name: Ankita Saini
Topic name: Abstract class in Scala
Following are some important observations about abstract classes in Scala.
  • Like Java, in Scala, we are not allowed to create the instance of the abstract class. If we try to create objects of the abstract class, then the compiler will give an error as shown in the below program. Example: Output:
    prog.scala:18: error: class myauthor is abstract; cannot be instantiated var obj = new myauthor() ^ one error found
  • In Scala, an abstract class can also contain fields. These fields are accessed by the abstract class methods and by the methods of the class which inherit abstract class. As shown in the below program. Example: Output:
    Portal name: GeeksforGeeks
    Tutorial name: Scala
  • Like Java, In Scala, an abstract class can also contain a constructor and a constructor of an abstract class is called when an instance of a inherited class is created. As shown in the below program. Example: Output:
    Author name: Ankita
    Topic name: Abstract class
    
  • An abstract class can also contain only non- abstract method. This allows us to create classes that cannot be instantiated, but can only be inherited. As shown in the below program. Example: Output:
    Welcome to GeeksforGeeks
    
  • In Scala, an abstract class can contain final methods (methods that cannot be overridden). For example, the following program compiles and runs without an error. In Scala, final method is created using final keyword. Example: Output:
    Final method
    
When to use abstract class in Scala: An abstract class is useful:
  • When we want to construct a base class which needs constructor arguments.
  • When our code will be called from Java code.
Note:Traits are also used to achieve abstraction.
Comment
Article Tags:

Explore