Created
June 23, 2020 11:57
-
-
Save aryzae/ef311aac10b89202474022f2159c2177 to your computer and use it in GitHub Desktop.
Flutter勉強会3回目の問題(継承)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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