Skip to content

Instantly share code, notes, and snippets.

@ordem-yoo
Created May 22, 2022 03:56
Show Gist options
  • Save ordem-yoo/7ee19932a68e3b9b98bded661b0c4d6f to your computer and use it in GitHub Desktop.
Save ordem-yoo/7ee19932a68e3b9b98bded661b0c4d6f to your computer and use it in GitHub Desktop.
99. Polymorphism in Action
void main() {
ElectricCar myTesla = ElectricCar();
myTesla.drive();
myTesla.recharge();
print(myTesla.batteryLevel);
LevitatingCar myMagLev = LevitatingCar();
myMagLev.drive();
SelfDrivingCar myWaymo = SelfDrivingCar('1 Hacker Way');
myWaymo.drive();
}
class Car{
int nubmerOfSeat = 5;
void drive(){
print('wheels turn.');
}
}
class ElectricCar extends Car{
// Car클래스에서 상속을 받으므로 drive함수를 다시 쓰지 않아도 된다.
int batteryLevel = 100;
void recharge(){
batteryLevel = 100;
}
}
class LevitatingCar extends Car{
@override
// @override를 통해서 함수를 그대로 쓰되, 내용을 바꿀 수 있다.
void drive(){
print('glide forward');
}
}
class SelfDrivingCar extends Car{
String destination = '';
SelfDrivingCar(String userSetDestination){
destination = userSetDestination;
}
@override
void drive(){
super.drive();
// 부모 클래스로부터 상속받은 필드나 메소드를 자식 클래스에서 참조하는 데 사용하는 참조 변수입니다.
print('sterring towrad $destination');
}
// polymorphism = 다형성
// 부모로부터 물려받을 수 있지만 @override를 통해서 향상시킬 수 있습니다.
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment