【 Flutter 】Flutter を 基礎 から 学習 ( Dart編 ) part15 クラス
「基礎 から 学ぶ Flutter 」という書籍で 学習 したことを ブログでアウトプットしていこうと思います。今回は Dart編 ( part15 )です。
前回
【 Flutter 】Flutter を 基礎 から 学習 ( Dart編 ) part14 クラス
クラスの学習の続きになります。
クラス
暗黙的インターフェイス
すべてのクラスは、そのクラスのすべてのインスタンスメンバーとそれが実装するすべてのメソッドを含むインナーフェイスを暗黙的に定義します。
と、本書にありました。
インタフェースの機能が無いわけではないんですね!失礼しましたm(_ _)m。
クラスを作成した際に、自動的に定義されるものなんですね。
前回のブログを確認して訂正せねば。
implemets
キーワードを使用します。
abstract class AbstractHogeClass {
// ただのメソッドに見えますが、これがAbstractメソッドです。
// Abstractメソッドは実装を持つことができません。セミコロンで止めます。
void fuga();
// 「実装」を持つメソッドは「普通ののメソッド」と判断されます。
// 継承先のクラスは実装を強制されません。
void fufufu() {
print ('fufufu');
}
}
// AbstractHogeClassを継承しました。
// fugaは絶対に実装しなければいけません。(未実装の場合はコンパイルエラーです。)
class HogeImplemetsClass extends AbstractHogeClass {
void fuga() {
print('絶対実装しないと!');
}
}
// インターフェイスの機能を試しました。
// extendsではなく、implemetsキーワードを使用します。
// このクラスはHogeImplemetsClassのfugaメソッドだけではなく!
// AbstractHogeClassのfufufuメソッドも実装する必要があります。
class HogableClass implements HogeImplemetsClass {
void fufufu() {
print('HogableClassのfufufu');
}
void fuga() {
print('HogableClassのfuga');
}
}
void main() {
// Abstractクラスはインスタンス化できません。
// 実装を持たないメソッドが定義されることがあるのでできません。
//var a = AbstractHogeClass();
var b = HogeImplemetsClass();
b.fuga();
// インターフェイスの確認
var c = HogableClass();
c.fufufu();
c.fuga();
}
最後に
Dartではinterface
というキーワードが無いのですが、「インターフェイスの機能」は実現されていました。
暗黙的インターフェイスというらしいです。
普通のクラスがインタフェースになるというなんだか妙な感覚に陥ってしまいそうです😅
今日はここまで!
ディスカッション
コメント一覧
まだ、コメントがありません