

{"id":17659,"date":"2018-06-07T04:00:44","date_gmt":"2018-06-07T04:00:44","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=17659"},"modified":"2021-12-04T10:15:30","modified_gmt":"2021-12-04T04:45:30","slug":"scala-trait","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/scala-trait\/","title":{"rendered":"Scala Trait &#8211; Multiple Class and Examples with New Experiments"},"content":{"rendered":"<p>In our last Scala Tutorial, we studied<strong><a href=\"https:\/\/data-flair.training\/blogs\/scala-annotations\/\"> Scala Annotations<\/a><\/strong> and in this Scala Trait tutorial, we will learn about what is a trait in <strong><a href=\"https:\/\/data-flair.training\/blogs\/scala-tutorial\/\">Scala Programming\u00a0Language<\/a><\/strong>. Moreover, we will discuss syntax and examples of Scala traits. Along with this, we will look at Scala traits with abstract and non-abstract methods. At last, we will cover override with a trait and multiple traits in a Class.<\/p>\n<p>So, let&#8217;s start Scala Trait.<\/p>\n<h3 class=\"western\">Introduction to Scala Trait<\/h3>\n<p>Traits in Scala are like partially implemented interfaces. It may contain abstract and non-abstract methods. It may be that all methods are abstract, but it should have at least one abstract method. Not only are they similar to<strong><a href=\"https:\/\/data-flair.training\/blogs\/interface-in-java\/\"> Java interfaces<\/a><\/strong>, Scala compiles them into those with corresponding implementation classes holding any methods implemented in the traits.<\/p>\n<p>You can say that using Scala trait, we can share interfaces and fields between classes. Within trait, we can declare<strong><a href=\"https:\/\/data-flair.training\/blogs\/scala-variable\/\"> variables <\/a><\/strong>and values. When we do not initialize them, they are abstract. In other cases, the implementing class for the trait internally implements them.<\/p>\n<p>Finally, we can never instantiate Scala traits, and it has no parameters, but we can have classes and objects extend it.<br \/>\n<strong><a href=\"https:\/\/data-flair.training\/blogs\/scala-case-class\/\">Let&#8217;s Revise Scala Case Class and Create Scala Object in Detail<\/a><\/strong><\/p>\n<h3 class=\"western\">A Syntax of Scala Trait<\/h3>\n<p>To define trait, we use the \u2018trait\u2019 keyword:<\/p>\n<pre class=\"EnlighterJSRAW\">scala&gt; trait Footwear<\/pre>\n<p>defined trait Footwear<\/p>\n<p>We can also use Scala traits with abstract methods and as generic types:<\/p>\n<pre class=\"EnlighterJSRAW\">scala&gt; trait Iterator[A]{\r\n| def hasNext:Boolean\r\n| def next():A\r\n| }<\/pre>\n<p>defined trait Iterator<br \/>\nNow, let\u2019s take an example of a simple trait.<\/p>\n<h3 class=\"western\">Scala Trait Example<\/h3>\n<pre class=\"EnlighterJSRAW\">scala&gt; trait Greeting{\r\n| def greet()\r\n| }\r\ndefined trait Greeting\r\nscala&gt; class Rendezvous extends Greeting{\r\n| def greet(){\r\n| println(\"Hello\")\r\n| }\r\n| }\r\ndefined class Rendezvous\r\nscala&gt; var r=new Rendezvous()\r\nr: Rendezvous = Rendezvous@4cf5d999\r\nscala&gt; r.greet()<\/pre>\n<p>Hello<br \/>\nThis was a simple trait with one abstract method. Now, let\u2019s take another example.<br \/>\n<strong><a href=\"https:\/\/data-flair.training\/blogs\/scala-final\/\">Read About Scala Final \u2013 Variable, Method &amp; Class | Scala This<\/a><\/strong><\/p>\n<h3 class=\"western\">With Abstract and Non-Abstract Methods<\/h3>\n<p>Here, we will see the example of trait with the abstract and non-abstract method.<\/p>\n<pre class=\"EnlighterJSRAW\">scala&gt; trait Greeting{\r\n| def greet()\r\n| def show(){ \/\/non-abstract\r\n| println(\"This is the out method\")\r\n| }\r\n| }\r\ndefined trait Greeting\r\nscala&gt; class Rendezvous extends Greeting{\r\n| def greet(){\r\n| println(\"Hello\")\r\n| }\r\n| }\r\ndefined class Rendezvous\r\nscala&gt; var r=new Rendezvous()\r\nr: Rendezvous = Rendezvous@4c6fe482\r\nscala&gt; r.greet()<\/pre>\n<p>Hello<\/p>\n<pre class=\"EnlighterJSRAW\">scala&gt; r.show()<\/pre>\n<p>This is the out method<br \/>\nWhile we cannot extend multiple abstract classes, we can extend multiple traits in Scala.<\/p>\n<h3 class=\"western\">Multiple Traits in a Class<\/h3>\n<p>For a class extending multiple traits in Scala, we use \u2018extends\u2019 for one trait and \u2018with\u2019 for the rest. Hence, using traits, we can achieve multiple <strong><a href=\"https:\/\/data-flair.training\/blogs\/scala-inheritance\/\">inheritances<\/a><\/strong>.<\/p>\n<pre class=\"EnlighterJSRAW\">scala&gt; trait A{\r\n| def showA()\r\n| }\r\ndefined trait A\r\nscala&gt; trait B{\r\n| def showB()\r\n| }\r\ndefined trait B\r\nscala&gt; class MyClass extends A with B{\r\n| def showA(){\r\n| print(\"A\")\r\n| }\r\n| def showB(){\r\n| print(\"B\")\r\n| }\r\n| }\r\ndefined class MyClass\r\nscala&gt; var m=new MyClass()\r\nm: MyClass = MyClass@3a4181ba\r\nscala&gt; m.showA()\u00a0\r\nA\r\nScala&gt; m.showB()\r\nB<\/pre>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/scala-exceptions-handling\/\">Let&#8217;s Explore Scala Exceptions and Exception Handling<\/a><\/strong><\/p>\n<h3 class=\"western\">An Experiment with Trait in Scala<\/h3>\n<p>What happens when we do not implement all members of Scala trait in a class that extends it? Let\u2019s find out.<\/p>\n<pre class=\"EnlighterJSRAW\">scala&gt; trait Greeting{Scala\u00a0Trait\u00a0Mixins\r\nScala\u00a0Trait\u00a0Mixins\r\n| def greet()\r\n| }\r\ndefined trait Greeting\r\nscala&gt; class Rendezvous extends Greeting{\r\n| def show(){\r\n| println(\"This is a rendezvous\")\r\n| }\r\n| }\r\n&lt;console&gt;:12: error: class Rendezvous needs to be abstract, since method greet in trait Greeting of type ()Unit is not defined\r\nclass Rendezvous extends Greeting{\r\n^<\/pre>\n<p>Since we did not implement greet() from the trait Greeting, we must declare it abstract. This works:<\/p>\n<pre class=\"EnlighterJSRAW\">scala&gt; trait Greeting{\r\n| def greet()\r\n| }\r\ndefined trait Greeting\r\nscala&gt; abstract class Rendezvous extends Greeting{\r\n| def show(){\r\n| println(\"This is a rendezvous\")\r\n| }\r\n| }\r\ndefined class Rendezvous<\/pre>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/scala-list\/\"><strong>Do You Know About Scala List with Examples<\/strong> <\/a><\/p>\n<h3 class=\"western\">Override with Scala Trait<\/h3>\n<p>To implement abstract members of a trait, we can use the \u2018override\u2019 keyword.<\/p>\n<pre class=\"EnlighterJSRAW\">scala&gt; trait Iterator[A]{\r\n| def hasNext:Boolean\r\n| def next():A\r\n| }\r\ndefined trait Iterator\r\nscala&gt; class IntIterator(to:Int) extends Iterator[Int]{\r\n| private var current=0\r\n| override def hasNext:Boolean=current&lt;to\r\n| override def next():Int={\r\n| if(hasNext){\r\n| val t=current\r\n| current+=1\r\n| t\r\n| } else 0\r\n| }\r\n| }\r\ndefined class IntIterator\r\nscala&gt; val iterator=new IntIterator(10)\r\niterator: IntIterator = IntIterator@5b2728db\r\nscala&gt; iterator.next()\r\nres6: Int = 0\r\nscala&gt; iterator.next()\r\nres7: Int = 1<\/pre>\n<p>So, this was all about Scala Trait Tutorial. Hope you like our explanation.<br \/>\n<strong><a href=\"https:\/\/data-flair.training\/blogs\/scala-method-overloading\/\">Read About Scala Method Overloading with Example<\/a><\/strong><\/p>\n<h3 class=\"western\">Conclusion<\/h3>\n<p>Hence, in this article, we can say that Scala trait is a partially implemented interface. We can use it to share fields and interfaces between classes. In addition, we got know about example and syntax of Scala traits and experiment with Scala trait.<\/p>\n<p>In conclusion, we cover the multiple Scala traits in a class and use abstract and non-abstract methods with scala trait. Furthermore, if you have any query, feel free to ask in the comment section.<br \/>\nRelated Topic-\u00a0<strong><a href=\"https:\/\/data-flair.training\/blogs\/scala-option\/\">13 Simple Methods to Call Option in Scala<\/a><\/strong><br \/>\n<strong><a href=\"https:\/\/en.wikipedia.org\/wiki\/Scala_(programming_language)\">For reference<\/a><\/strong><span hidden class=\"__iawmlf-post-loop-links\" data-iawmlf-links=\"[{&quot;id&quot;:1920,&quot;href&quot;:&quot;https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Scala_(programming_language)&quot;,&quot;archived_href&quot;:&quot;http:\\\/\\\/web-wp.archive.org\\\/web\\\/20250919075050\\\/https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Scala_(programming_language)&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-10 09:49:49&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-14 06:04:41&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-17 08:14:32&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-21 15:16:29&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-24 20:50:35&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-27 22:51:06&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-02 00:56:48&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-05 05:12:52&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-08 16:37:57&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-11 16:52:40&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-15 01:28:34&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-19 03:57:54&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-23 15:04:21&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-27 23:53:53&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-31 15:57:47&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-03 17:23:23&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-07 12:58:30&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-10 13:51:06&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-13 14:05:55&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-17 10:42:41&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-20 19:37:04&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-24 11:37:43&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-28 03:48:25&quot;,&quot;http_code&quot;:429},{&quot;date&quot;:&quot;2026-03-03 20:07:22&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-09 03:36:50&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-12 17:53:12&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-16 12:24:01&quot;,&quot;http_code&quot;:429},{&quot;date&quot;:&quot;2026-03-21 16:15:51&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-29 09:06:02&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-02 02:19:02&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-05 07:25:42&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-09 05:45:52&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-13 17:35:26&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-17 20:46:47&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-20 23:10:43&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-24 16:10:49&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-29 02:08:36&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-03 06:35:12&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-07 05:36:56&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-10 12:10:35&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-13 17:35:32&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-18 05:54:28&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-22 04:26:17&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-25 10:55:32&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-29 13:13:25&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-06-01 14:38:15&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-05 08:23:46&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-09 21:06:00&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-06-13 16:35:11&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-18 05:49:58&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-22 04:17:29&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-26 15:19:02&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-06-29 17:32:11&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-06-29 17:32:11&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;}]\"><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In our last Scala Tutorial, we studied Scala Annotations and in this Scala Trait tutorial, we will learn about what is a trait in Scala Programming\u00a0Language. Moreover, we will discuss syntax and examples of&#46;&#46;&#46;<\/p>\n","protected":false},"author":6,"featured_media":17779,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[61],"tags":[8958,9358,12567,12569,12572,14884],"class_list":["post-17659","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-scala","tag-multiple-traits-in-a-class","tag-override-with-scala-trait","tag-scala-trait","tag-scala-trait-example","tag-scala-trait-syntax","tag-trait-in-scala"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Scala Trait - Multiple Class and Examples with New Experiments - DataFlair<\/title>\n<meta name=\"description\" content=\"Scala Trait Tutorial,What is Trait in Scala.syntax &amp; Example of Scala Traits,Multiple Scala Trait in a class,Scala Trait With Abstract &amp; Non-Abstract Method\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/scala-trait\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Scala Trait - Multiple Class and Examples with New Experiments - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Scala Trait Tutorial,What is Trait in Scala.syntax &amp; Example of Scala Traits,Multiple Scala Trait in a class,Scala Trait With Abstract &amp; Non-Abstract Method\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/scala-trait\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-06-07T04:00:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-12-04T04:45:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/Scala-Trait-01.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Scala Trait - Multiple Class and Examples with New Experiments - DataFlair","description":"Scala Trait Tutorial,What is Trait in Scala.syntax & Example of Scala Traits,Multiple Scala Trait in a class,Scala Trait With Abstract & Non-Abstract Method","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/scala-trait\/","og_locale":"en_US","og_type":"article","og_title":"Scala Trait - Multiple Class and Examples with New Experiments - DataFlair","og_description":"Scala Trait Tutorial,What is Trait in Scala.syntax & Example of Scala Traits,Multiple Scala Trait in a class,Scala Trait With Abstract & Non-Abstract Method","og_url":"https:\/\/data-flair.training\/blogs\/scala-trait\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2018-06-07T04:00:44+00:00","article_modified_time":"2021-12-04T04:45:30+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/Scala-Trait-01.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/scala-trait\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/scala-trait\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89"},"headline":"Scala Trait &#8211; Multiple Class and Examples with New Experiments","datePublished":"2018-06-07T04:00:44+00:00","dateModified":"2021-12-04T04:45:30+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/scala-trait\/"},"wordCount":548,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/scala-trait\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/Scala-Trait-01.jpg","keywords":["Multiple Traits in a Class","Override with Scala Trait","Scala Trait","Scala Trait Example","Scala Trait Syntax","Trait in Scala"],"articleSection":["Scala Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/scala-trait\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/scala-trait\/","url":"https:\/\/data-flair.training\/blogs\/scala-trait\/","name":"Scala Trait - Multiple Class and Examples with New Experiments - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/scala-trait\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/scala-trait\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/Scala-Trait-01.jpg","datePublished":"2018-06-07T04:00:44+00:00","dateModified":"2021-12-04T04:45:30+00:00","description":"Scala Trait Tutorial,What is Trait in Scala.syntax & Example of Scala Traits,Multiple Scala Trait in a class,Scala Trait With Abstract & Non-Abstract Method","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/scala-trait\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/scala-trait\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/scala-trait\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/Scala-Trait-01.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/Scala-Trait-01.jpg","width":1200,"height":628,"caption":"Scala Trait - Multiple Class and Examples with New Experiments"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/scala-trait\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Scala Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/scala\/"},{"@type":"ListItem","position":3,"name":"Scala Trait &#8211; Multiple Class and Examples with New Experiments"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"The DataFlair Team provides industry-driven content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our expert educators focus on delivering value-packed, easy-to-follow resources for tech enthusiasts and professionals.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam2\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/17659","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=17659"}],"version-history":[{"count":6,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/17659\/revisions"}],"predecessor-version":[{"id":104746,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/17659\/revisions\/104746"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/17779"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=17659"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=17659"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=17659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}