How to Access a Case Class Method from Another Class in Scala? Last Updated : 23 Jul, 2025 Comments Improve Suggest changes Like Article Like Report Accessing a case class method from another class in Scala can be achieved through several approaches. Case classes are commonly used to model immutable data and provide convenient methods for accessing and manipulating data fields. The article focuses on discussing different methods to access a case class method from another class in Scala. Table of Content Using Companion ObjectUsing InheritanceUsing Implicit ConversionConclusionUsing Companion ObjectBelow is the Scala program to access a case class method from another class using a companion object: Scala case class Person(name: String) { def greet(): Unit = println(s"Hello, $name") }; object AnotherClass { def main(args: Array[String]): Unit = { val person = Person("Alice"); person.greet() } }; OutputHello, Alice Explanation: We define a case class Person with a method greet() that prints a greeting message.In the AnotherClass object, we create an instance of Person and invoke the greet() method.Using InheritanceBelow is the Scala program to access a case class method from another class using inheritance: Scala case class Person(name: String) { def greet(): Unit = println(s"Hello, $name") }; class AnotherClass extends Person("Bob") { def invokeGreet(): Unit = greet() }; object Main { def main(args: Array[String]): Unit = { val anotherClass = new AnotherClass; anotherClass.invokeGreet() } }; OutputHello, Bob Explanation: We define a case class Person with a method greet().The AnotherClass class extends Person and defines a method invokeGreet() that calls the greet() method.In the Main object, we create an instance of AnotherClass and invoke the invokeGreet() method.Using Implicit ConversionBelow is the Scala program to access a case class method from another class using implicit conversion: Scala object Main { def main(args: Array[String]): Unit = { import AnotherClass._; val person = Person("Charlie"); person.invokeGreet(); } }; case class Person(name: String) { def greet(): Unit = println(s"Hello, $name"); }; object AnotherClass { implicit class PersonOps(person: Person) { def invokeGreet(): Unit = person.greet(); } }; OutputHello, Charlie Explanation: We define a case class Person with a method greet().In the AnotherClass object, we define an implicit class PersonOps that adds a method invokeGreet() to Person.In the Main object, we import the implicit conversion and use it to invoke the invokeGreet() method on a Person instance.ConclusionAccessing a case class method from another class in Scala can be accomplished using various techniques, such as companion objects, inheritance, or implicit conversions. Create Quiz Comment R raghu135ram Follow 0 Improve R raghu135ram Follow 0 Improve Article Tags : Scala Explore OverviewScala Programming Language3 min readIntroduction to Scala7 min readSetting up the environment in Scala3 min readHello World in Scala2 min readBasicsScala Keywords2 min readScala Identifiers3 min readData Types in Scala3 min readVariables in Scala3 min readControl StatementsScala | Decision Making (if, if-else, Nested if-else, if-else if)5 min readScala | Loops(while, do..while, for, nested loops)5 min readBreak statement in Scala3 min readScala | Literals4 min readOOP ConceptsClass and Object in Scala5 min readInheritance in Scala5 min readOperators in Scala11 min readScala Singleton and Companion Objects3 min readScala Constructors4 min readScala | Polymorphism5 min readScala | Multithreading3 min readScala this keyword2 min readMethodsScala | Functions - Basics3 min readAnonymous Functions in Scala2 min readScala | Closures3 min readRecursion in Scala4 min readMethod Overloading in Scala5 min readMethod Overriding in Scala8 min readLambda Expression in Scala4 min readScala Varargs2 min readStringsScala String4 min readScala | String Interpolation3 min readScala | StringContext2 min readRegular Expressions in Scala5 min readStringBuilder in Scala4 min readScala PackagesPackages In Scala4 min readScala | Package Objects3 min readChained Package Clauses in Scala3 min readFile Handling in Scala3 min readScala TraitScala | Traits7 min readScala | Sealed Trait4 min readScala | Trait Mixins3 min readTrait Linearization in Scala5 min readCollectionsScala Lists5 min readScala ListBuffer6 min readListSet in Scala6 min readScala Map5 min readScala | Arrays6 min readScala | ArrayBuffer4 min readScala | Tuple5 min readSet in Scala | Set-13 min readSet in Scala | Set-27 min readBitSet in Scala5 min readHashSet In Scala4 min readStack in Scala3 min readHashMap in Scala3 min readTreeSet in Scala4 min readIterators in Scala5 min readScala | Option3 min read Like