TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

<< Back to SCALA

Scala Class Examples: Trait Keyword

Use a class and create it with the new-keyword. A trait is used to extend a class.
Classes. A Game class has fields and methods. It has the current score. It has players. And it can take turns with a play method.
With traits, and the trait keyword, we can extend features of our classes. A Game might be extended to adjust the rules. It might add features or options.
First example. Here we introduce a Test class. On this class we find a method print(). This writes a greeting to the screen. We create a new instance of Test with the new-keyword.
Scala program that uses class class Test { def print() = { // Print a greeting. println("Hello") } } // Create new instance of Test class. val t = new Test() t.print() Output Hello
Traits. A trait is used to extend a class. We can compose a class by adding those traits to its definition. This allows us to combine many capabilities in a class.

Here: We have a Page class, and an Image and Paragraphs traits. A trait is defined in a similar way as a class, but uses the trait keyword.

ComplexPage: This class is based on the Page class, but also adds the Image and Paragraphs traits. It contains all three methods.

Finally: We create a ComplexPage instance and call print, printImages and printParagraphs from the Page class and the two traits.

Scala program that uses traits class Page { def print() = { println("Page") } } trait Image { def printImages() = { // Print images. println("Images") } } trait Paragraphs { def printParagraphs() = { // Print paragraphs. println("Paragraphs") } } // Extend Page. // ... Add Image and Paragraphs traits. class ComplexPage extends Page with Image with Paragraphs { } // Create ComplexPage instance. // ... Use Page, Image, Paragraphs methods on it. val example = new ComplexPage() example.print() example.printImages() example.printParagraphs() Output Page Images Paragraphs
A review. Scala provides both functional and object-oriented features. With classes and traits we compose complex models. This is streamlined but conceptually similar to Java.
© TheDeveloperBlog.com
The Dev Codes

Related Links:


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf