<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Traits on BradCypert.com</title>
    <link>https://www.bradcypert.com/tags/traits/</link>
    <description>Recent content in Traits on BradCypert.com</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 27 Dec 2022 16:51:00 -0500</lastBuildDate>
    <atom:link href="https://www.bradcypert.com/tags/traits/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Adapting Traits for Kotlin</title>
      <link>https://www.bradcypert.com/adapting-traits-for-kotlin/</link>
      <pubDate>Wed, 10 Apr 2019 00:00:00 +0000</pubDate>
      <guid>https://www.bradcypert.com/adapting-traits-for-kotlin/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://docs.scala-lang.org/tour/traits.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Traits&lt;/a&gt;&#xA; are a pattern introduced in Scala (at least, this was my first introduction to them) that help avoid deep class hierarchies in favor of composition. If you don’t have Scala experience, but do have Java experience, you can treat this similarly to &lt;a href=&#34;https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Java 8 Interfaces&lt;/a&gt;&#xA;. However, I still prefer to call them Traits.&lt;/p&gt;&#xA;&lt;p&gt;Although Traits have first-class support in Scala, Kotlin does not directly have Traits. However, &lt;a href=&#34;https://kotlinlang.org/docs/reference/interfaces.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Kotlin does support default interface implementations&lt;/a&gt;&#xA;, just like Java 8. It’s fair to assume then, that Kotlin can have a similar concept of Traits only constructed from Interfaces with default implementations.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
