Kotlinでデータクラスを拡張する
データクラスは、アプリケーションのデータを保持するクラスです。これは、データを保持するためにJavaで使用するPOJOクラスのようなものです。
Javaでは、データクラスについて、 getterを作成する必要があります およびセッター そのクラスのプロパティにアクセスするためのメソッド。 Kotlinでは、クラスがデータクラスとして宣言されると、コンパイラはクラスのメンバー変数にアクセスするために必要ないくつかのサポートメソッドを自動的に作成します。コンパイラはゲッターを作成します およびセッター コンストラクターパラメーターの場合、 hashCode()、equals()、toString()、copy()。
Kotlinでデータクラスと見なされるクラスの場合、次の条件を満たす必要があります-
-
プライマリコンストラクタには、少なくとも1つのパラメータが必要です。
-
すべてのプライマリコンストラクタパラメータは、 valとしてマークする必要があります またはvar 。
-
データクラスを抽象的、オープン、封印にすることはできません または内部。
データクラスを拡張することはできませんが、同じ機能を実装するために、スーパークラスを宣言できます。 サブクラスのプロパティを上書きします
例
次の例では、「Student」と「Book」の2つのデータクラスを作成します。また、抽象クラス「Resource」を作成します。 「Book」内で、「Resource」クラスのプロパティをオーバーライドします。
data class Student(val name: String, val age: Int) fun main(args: Array) { val stu = Student("Student1", 29) val stu2 = Student("Student2", 30) println("Student1 Name is: ${stu.name}") println("Student1 Age is: ${stu.age}") println("Student2 Name is: ${stu2.name}") println("Student2 Age is: ${stu2.age}") val b=Book(1L,"India","123222") // implementing abstract class println(b.location) } // declaring super class abstract class Resource { abstract var id: Long abstract var location: String } // override the properties of the Resource class data class Book ( override var id: Long = 0, override var location: String = "", var isbn: String ) : Resource()
出力
次の出力が生成されます-
Student1 Name is: Student1 Student1 Age is: 29 Student2 Name is: Student2 Student2 Age is: 30 India
-
C#のコンソールクラス
C#のConsoleクラスは、コンソールアプリケーションの標準の入力、出力、およびエラーストリームを表すために使用されます。 C#のコンソールクラスプロパティの例をいくつか見てみましょう- Console.CursorLeftプロパティ C#でコンソールのCursorLeftを変更するには、Console.CursorLeftプロパティを使用します。 例 例を見てみましょう- using System; class Demo { public static void Main (string[] args) { Cons
-
列挙型はJavaの任意のクラスを拡張できますか?
Javaの列挙(enum)は、定数値のセットを格納するデータ型です。列挙型を使用して、1週間の日数、1年の月数などの固定値を格納できます。 キーワードenumの後に列挙型の名前を-として使用して、列挙型を定義できます。 enum Days { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } 配列と同様に、列挙型の要素/定数は、上記の例では0から始まる番号を使用して識別されます。日は、次の図に示すように番号を使用して識別されます- 列挙型はクラスに似ており、変数、メソッド、コン