인터페이스 : 클래스를 정의할때 반드시 들어가야 하는 변수와 함수를 지정할 때 사용! => 강제성을 띄운다!
- abstract class로 선언
- implements 키워드 사용!
- 그저 형태만 선언하면됨!
abstract class Food{
String name;
void sayName();
}
class Pizza implements Food{
String name = "pizza";
void sayName(){ //일종의 overiding
print("이 음식은 피자입니다");
}
}
상속은 다형성이 성립될 때만 사용가능!
예를 들어서 Car - BMW는 상속이 가능하지만 Engine - BMW는 상속이 가능하지 않다!
이럴 때 사용할 수 있는 것이 mixin이다!
- with 키워드를 사용! 자식 with 부모
class Engine{
int power = 5000;
}
class BMW with Engine{ }
void main(){
BMW bm = new BMW();
print(bm.power);
}