Kotlinクラス2-抽象クラスとインタフェース
1584 ワード
Kotlinクラス2-抽象クラスとインタフェース
1.Kotlinクラス、抽象クラス、インタフェースのルール:「単一継承マルチリアリティ」すなわち、1つのクラスは1つの親クラスしか継承できないが、複数のインタフェースを実現することができる. 「継承実装後使用」抽象クラスとインタフェースは直接オブジェクトを作成することができず、布団クラス継承実装後、サブクラスで作成する必要がある. 親(インタフェース)変数は、子(実装クラス)のインスタンス付与を受け入れることができる.
2.インタフェース Kotlinでは、インタフェースは以下の特徴を有する: インタフェースでは属性を定義できますが、初期化できません.getter/setterメソッドもありませんが、その実装クラスでは実装する必要があります. は、インタフェース関数にデフォルトの実装を作成することができる(その実装クラスでは、関数を実装する必要はない). 抽象関数については、その実装クラスにその関数の実装を与えなければならない.
3.抽象クラス Kotlinでは、抽象クラスは以下の特徴を有する: は属性を定義することができ、同時に属性は初期値を付与することができる. は、関数および関数体を作成してもよいし、クラスに対応する属性を出力してもよい. インタフェースと同様に、抽象的な関数については、その関数の実装を実現クラスに与えなければならない.
1.Kotlinクラス、抽象クラス、インタフェースのルール:
2.インタフェース
interface A {
/* 1. , , getter/setter , ;
*/
var a: Int
/* 2. ( );
*/
fun printA() {
println("a --> $a")
}
/* 3. , ;
*/
fun printA1()
}
/* A1. A a;
*/
class implA(override var a: Int) : A {
/* A3. A printA1();
*/
override fun printA1() {
}
}
3.抽象クラス
abstract class B {
/* 1. , ;
*/
var b = 10
/* 2. , ;
*/
fun printB() {
println(b)
}
/* 3. , , ;
*/
abstract fun printB1()
}
class implB : B() {
/* B3. B printB1();
*/
override fun printB1() {
}
}