0Pricing
Dart Academy · レッスン

base、interface、final 修飾子

他のコードによるクラスの拡張方法を制御します

「base、interface、final 修飾子」はCoddyKit上の無料Dart Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDart Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Dart Academyコースには全4レッスンが含まれています。

クラス修飾子

Dart 3 では、他のコードによるクラスの再利用方法を制御する 修飾子 が追加されました。ライブラリーの作成者は、明確で強制力のある境界を設定できます。

base 修飾子

base クラスは継承できますが、実装はできません。これにより、すべてのサブタイプが実際の実装を継承することを保証できます。

base class Animal {
  void breathe() {}
}

base を使う理由

base を使うと、すべてのサブタイプが具体的なコードを共有することが分かるため、プライベートメンバーや不変条件を階層全体で信頼できます。

interface 修飾子

interface クラスは実装できますが、ライブラリーの外から継承することはできません。他のコードが保証するのは形だけであり、実装そのものではありません。

interface class Logger {
  void log(String m) {}
}

interface を使う理由

interface 修飾子は、契約を定義するのに適しています。呼び出し側はメソッドシグネチャを実装し、実装自体は非公開にしておけます。

class FileLogger implements Logger {
  void log(String m) {}
}

final 修飾子

final クラスは、ライブラリーの外から継承も実装も一切できません。型を完全に固定できます。

final class Money {}

final を使う理由

他のコードによって動作を変更されたくない場合は、クラスを final にします。サブクラスを壊すことなく、自由に改良できます。

base は下位に広がる

base クラスを継承したサブクラスも、base、final、または sealed でなければなりません。この制約は継承チェーンの下位へ引き継がれます。

base class Cat extends Animal {}

修飾子の組み合わせ

base mixin や sealed などの修飾子を他の修飾子と組み合わせて、再利用のルールを細かく調整できます。それぞれの組み合わせが、明確な意図を表します。

base mixin Swimmer {
  void swim() {}
}

同じライブラリー内での自由

これらの制限は、宣言したライブラリーの外部にのみ適用されます。自分のパッケージ内では、自由に継承や実装ができます。

適切な修飾子を選ぶ

契約には interface、共有コードには base、完全に固定するには final を選びます。安全だと感じられる範囲で、最も緩やかなルールを選んでください。🧭

理解度チェック

クラス修飾子について確認しましょう。

まとめ

base は継承を、interface は実装を強制し、final はその両方を禁止することで、再利用方法を制御できることを学びました。🔐

よくある質問

「base、interface、final 修飾子」レッスンは無料ですか?

はい。「base、interface、final 修飾子」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Dart Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Dart Academyコースには全4レッスンが含まれています。

「base、interface、final 修飾子」で何を学びますか?

他のコードによるクラスの拡張方法を制御します ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Dart Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDart Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「base、interface、final 修飾子」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDart Academyレッスンでコードを書いて実行できますか?

はい。すべてのDart Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. final フィールドと深い不変性
  2. sealed クラスと網羅的な switch
  3. base、interface、final 修飾子
  4. copyWith と値による等価性
← Dart Academyに戻る