是否可以使用Kotlin中的另一个接口来满足接口成员的实现?

时间:2019-07-04 07:53:32

标签: class kotlin interface

例如,如果我有这样的界面:

interface MyInterface {
    fun thouMustImplementThis()
}

我有一个实现MyClass的类MyInterface,这意味着我必须为该函数创建一个覆盖:

class MyClass : View, MyInterface {
    override fun thouMustImplementThis() {
        println ("Hello world")
    }
}

是否有另一个接口可以实现该功能?

interface YourInterface {
    fun thouMustImplementThis() {
        println ("Hello Stack Overflow")
    }
}

所以我可以将实现留在班级之外:

class MyClass : View, MyInterface, YourInterface {

}

但是我发现我仍然必须实现该功能,尽管我只需要添加对其超级功能版本的调用即可。

class MyClass : View, MyInterface, YourInterface {

    override fun thouMustImplementThis() {
        super.thouMustImplementThis()
    }
}

我不想要这个。

重点是,我想为某些本机接口创建某种默认实现,这样就不必在每次基于这些接口创建类时都重新实现它们。我当时以为通过将其作为接口,可以根据需要“附加”实现。有什么解决方法吗?

1 个答案:

答案 0 :(得分:3)

您只需让该接口实现另一个接口即可。 像这样:

=("FRO-GEPSA018");=("34212254600225");01-07-2019/31-07-2019;   1789,32
=("FRO-GNVERT01");=("41985346000584");01-07-2019/31-07-2019;   466,84
=("FRO-ESGED01");=("53983181800064");01-07-2019/31-07-2019;    4788,55
=("FRO-SGE") ;=("54209732400017");01-07-2019/31-07-2019;       1587,78
=("FRO-STO") ;=("54209732400025");01-07-2019/31-07-2019;       798,28
=("FRO-ELOC005");=("55204695500985");01-07-2019/31-07-2019;    4585
=("FRO-ELOC002");=("55204695502627");01-07-2019/31-07-2019;    1997,54
=("FRO-IDFTRT08");=("55204695503542");01-06-2019/30-06-2019;   -30,45
=("FRO-IDFTRT08");=("55204695503542");01-07-2019/31-07-2019;    507,58
=("FRO-ELOC015");=("55204695503682");01-07-2019/31-07-2019;     1393,28
=("FRO-IDFTRT02");=("55204695504060");01-07-2019/31-07-2019;      10,31
=("FRO-IDFTRT10");=("55204695504581");01-07-2019/31-07-2019;    1035,77
=("FRO-ELSIEGNE");=("55204695506040");01-07-2019/31-07-2019;    2749,91
=("FRO-BUB2B01");=("55204695506065");01-06-2019/30-06-2019;        369,06
=("FRO-SCDC01");=("74542015800024");01-07-2019/31-07-2019;      1231,65

@$CHARG_SQLFIC
QUIT;
EOF
         if [ $? -eq 1 ] ; then
          print_log "<E> Erreur lors de l'exécution du script SQL."
          maj_cr 99
         else
          print_log "                   -> Création OK."
          print_log "                   -> Suppression des caractères de mise en forme SQL*Plus..."
          sed -e 's/    //g' \
              -e 's/ //g' \
          $CHARG_FICSOR > $CHARG_FICSOR.tmp
          mv $CHARG_FICSOR.tmp $CHARG_FICSOR

          sed 's/ *;/;/g' $CHARG_FICSOR >> $CHARG_FICSOR1
          sed 's/;  */;/g' $CHARG_FICSOR1 >> $CHARG_FICSOR
         fi
        fi
        imp_etat "$CODSOC" "$CHARG_FICSOR" "Charges"
       fi

现在,该类可以像这样实现(不需要主体):

interface YourInterface : MyInterface {
    override fun thouMustImplementThis() {
        println("Hello Stack Overflow")
    }
}