🤔 継承を知っていますか?
継承では、既存のクラスの動作を再利用、拡張、変更する新しいクラスを作成することができます。 既存のクラスはスーパークラスと呼ばれ、新しく作成するクラスは派生クラスと呼ばれます。 Dartでは、スーパークラスは1つしか継承できませんが、継承は推移的です。 もし、class Hatch
がclass Car
から派生し、このクラスがclass Vehicle
から派生した場合、HatchはVehicleから派生します。
class Car extends Vehicle
の場合、class Vehicle
で実装したプロパティ、変数、関数はすべてclass Car
で利用できます。
スーパークラスの関数も上書き可能というわけですね。 あるクラスのより具体的なバージョンを作成したいときに extends
を使用します。
2⃣️ implements
の使用
例えば、独自の Car クラスを作成して、Vehicle クラスのすべてのプロパティ、変数、関数を継承せず、Vehicle タイプのみを継承したいとします。 これを行うには、Car クラスは Vehicle インターフェイスを実装する必要があります。
Dart では複数のクラスまたはインターフェイスを実装できます。
✍️例
鳥と鴨を実装しなければならないと想像します、どちらも動物ですが鳥は飛ぶだけ、鴨は飛ぶと泳げるということです。
まず、スーパークラスと動作を作成します。
次に、Bird
とDuck
を作成し、適切な動作を実装します。 この方法では、ビヘイビア実装を継承することはできません。 これらのビヘイビアのコードを再利用する方法はあるのでしょうか? はい、次に見ていきましょう!
3⃣️ with
を使う
Mixin は異なるタイプの構造で、キーワード with
とともにのみ使用でき、共通のコードスニペットを含めるために使用します、私は、コードを再利用すると言いたいです。
Mixin が以前の実装をどのように行うかを説明します。
望むなら abstract class
を mixin
に置き換えることができます。 ミキシンは、スーパークラスの上にミキシンの実装を置くことで、新しいクラスを作成することができます。
✌️Thanks
これが私のMediumでの最初の話です、気に入っていただけたでしょうか😃。
Mixin についての素晴らしい話を提供してくれた Romain Rastel に感謝したいと思います。