Skip to content

Instantly share code, notes, and snippets.

@sho-ito-1027
Created June 23, 2020 11:57
Show Gist options
  • Save sho-ito-1027/ef311aac10b89202474022f2159c2177 to your computer and use it in GitHub Desktop.
Save sho-ito-1027/ef311aac10b89202474022f2159c2177 to your computer and use it in GitHub Desktop.
Flutter勉強会3回目の問題(継承)
void main() {
Impreza1 car1 = Impreza1();
Impreza2 car2 = Impreza2();
Impreza3 car3 = Impreza3();
Impreza4 car4 = Impreza4();
}
class Car {
String name;
void accelerate() {}
void stop() {}
}
// Carクラスのサブクラス。
// 足りない部分は親クラスを参照しているので問題なし
// ① OK
class Impreza1 extends Car {
void accelerate() {}
void stop() {}
}
// Carクラスのサブクラスではあるが、implementsなので、
// 定義されているものは全て実装する必要がある。
// なのでvoid accelerate();がなくてダメ
// ② NG
class Impreza2 implements Car {
String name = 'Impreza2';
void stop() {}
}
// 全部揃ってるのでOK
// ③ OK
class Impreza3 implements Car {
@override
String name = 'Impreza3';
@override
void accelerate() {}
@override
void stop() {}
}
// Carクラスのサブクラス。
// @overrideがないが問題ないのでOK
// ④ OK
class Impreza4 extends Car {
String name = 'Impreza4';
void accelerate() {}
void stop() {}
void soundHorn() {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment