Shape라는 이름의 클래스를 생성
class Shape {
String? color;
void giveSides({required int noOfSide}){
print('$noOfSide Sides with $color Color');
}
}
Shape의 경우 원, 정사각형, 직사각형 등 여러가지 도형을 그릴 수 있음
만약 삼각형을 그리고 싶은 경우, extends
키워드를 사용하여 아래와 같이 클래스를 정의하면 shape의 특성을 가진 삼각형을 생성할 수 있음
class Triangle extends Shape {}
위와 같이 삼각형 클래스를 생성하였다면, Shpae 클래스의 속성과 메소드에 접근 가능
class Shape {
String? color;
void giveSides({required int noOfSide}){
print('$noOfSide Sides with $color Color');
}
}
class Triangle extends Shape{}
void main() {
final triangle = Triangle();
triangle.color = 'Red';
triangle.giveSides(noOfSide: 3);
}
class Parent {}
class Child extends Parent {}
class A {}
class B extends A {}
class C extends B {}
하나의 클래스를 여러 서브 클래스가 상속 받고 있는 상태
class Shape {
String? color;
void giveSides({required int noOfSide}){
print('$noOfSide Sides with $color Color');
}
}
class Triangle extends Shape {
void area (int l, int h){
print(1/2*l*h);
}
}
class Square extends Shape {
void area (int s){
print(s*s);
}
}
class Circle extends Shape {
void area (int radius){
print(3.14*radius*radius);
}
}
/* Shape
|
.---------.---------.
Triangle Square Circle
*/
extends
키워드를 통해서는 하나의 클래스가 여러 클래스를 상속할 수 없음
여러 클래스를 상속하기 위해 mixins
또는 with
키워드 사용
class A {}
class B {}
class C with A,B {}
Extends
, with
, implement
의 차이점extends
with
implement