Kotlin Abstract Class ve Abstract Üyeler

Bu makalede, soyut sınıf ve onu Kotlin'de nasıl uygulayacağınızı (örnekler yardımıyla) öğreneceksiniz.

Java gibi, abstractanahtar kelime Kotlin'de soyut sınıfları bildirmek için kullanılır. Soyut bir sınıfın örneği oluşturulamaz (soyut bir sınıfın nesnelerini oluşturamazsınız). Ancak, alt sınıfları bunlardan devralabilirsiniz.

Soyut bir sınıfın üyeleri (özellikleri ve yöntemleri), abstractonları soyut yapmak için açıkça anahtar sözcük kullanmadığınız sürece soyut değildir. Bir örnek alalım:

 abstract class Kişi (var age: Int = 40 fun displaySSN (ssn: Int) (println ("SSN'm $ ssn.")) abstract fun displayJob (açıklama: Dize))

Buraya,

  • soyut bir sınıf Personoluşturulur. Sınıfın nesnelerini oluşturamazsınız.
  • sınıfın soyut olmayan bir özellik yaşı ve soyut olmayan bir yöntemi vardır displaySSN(). Alt sınıfta bu üyeleri geçersiz kılmanız gerekirse, openanahtar sözcükle işaretlenmeleri gerekir .
  • Sınıfın soyut bir yöntemi vardır displayJob(). Herhangi bir uygulaması yoktur ve alt sınıflarında geçersiz kılınmalıdır.

Not: Abstract sınıfları her zaman açıktır. openAlt sınıfları onlardan devralmak için açıkça anahtar kelime kullanmanız gerekmez.

Örnek: Kotlin Soyut Sınıfı ve Metodu

 abstract class Person(name: String) ( init ( println("My name is $name.") ) fun displaySSN(ssn: Int) ( println("My SSN is $ssn.") ) abstract fun displayJob(description: String) ) class Teacher(name: String): Person(name) ( override fun displayJob(description: String) ( println(description) ) ) fun main(args: Array) ( val jack = Teacher("Jack Smith") jack.displayJob("I'm a mathematics teacher.") jack.displaySSN(23123) )

Programı çalıştırdığınızda, çıktı:

Benim adım Jack Smith. Ben bir matematik öğretmeniyim. SSN'm 23123.

Burada bir sınıf Teachersoyut bir sınıftan türetilmiştir Person.

Öğretmen sınıfının bir nesne girişi somutlaştırılır. "Jack Smith"Oluştururken birincil kurucuya parametre olarak geçtik . Bu, Personsınıfın başlatıcı bloğunu yürütür .

Daha sonra displayJob()yöntem, jack nesnesi kullanılarak çağrılır. Bu Not displayJob()yöntemi temel sınıfta soyut olarak tanımlanması, ve türetilmiş sınıf geçersiz kılınır.

Son olarak, displaySSN()yöntem, jack nesnesi kullanılarak çağrılır. Yöntem soyut değildir ve Person sınıfında bildirilmiştir (ve Teachersınıfta bildirilmemiştir ).

Önerilen Kaynaklar: Kotlin Interfaces

Kotlin arayüzleri soyut sınıflara benzer. Ancak, arayüzler durumu depolayamazken soyut sınıflar yapabilir.

Anlam, arayüzün özelliği olabilir ancak soyut olması veya erişimci uygulamaları sağlaması gerekir. Oysa soyut bir sınıfın özelliğinin soyut olması zorunlu değildir.

Ilginç makaleler...