오늘은 Dart문법에서 객체지향 프로그래밍중 하나인 상속에 대해 알아보자.
먼저 상속에 대해 알아보기에 앞서 <클래스>의 의미를 간단하게 짚어보자
클래스는 비슷한 특징을 가진 속성과 행동들을 묶어놓은 설계도로
변수가 값들을 보관하는 그릇이라면 클래스는 그릇들을 담아두는 박스라고 할 수 있다.
본격적으로 상속에대해 알아보자.
상속은 부모 클래스의 특징을 물려받는 것을 말한다.
자동차를 예를 들어보자.
일반 자동차 설계를 기반으로 전기차를 만든다고 했을때 자동차의 특징을 그대로 물려받고 거기에 전기차만의 특징을 추가 할 수 있는것 이다.
먼저 자동차이다. Car라는 클래스를 만들고 결과값을 만들어보자.
void main() {
Car c = Car();
c.drive();
class Car {
//속성(변수), 메서드(함수), 생성자
int wheels = 4;
void drive() {
print("부릉부릉!");
}
}
부릉부릉!
다음으로 Car 클래스의 속성을 물려받을 자녀 클래스를 만들어보자.
class ElectricCar extends Car {
int batteryLevel = 100;
void charge() {
print("충전중입니다");
}
// 어노테이션
// 코드를 위한 메타데이터
// @override => 실행에는 영향 x
// 다른개발자에게 재정의 했다고 명시적으로 알려주기 위해서
@override
void drive() {
print("지이잉");
}
}
이렇게 extends를 활용해서 부모클래스의 속성을 물려받아 "부릉부릉"을 입력하지 않고도 바로 출력이 가능하고 위의 프로그램 처럼 부모 클래스가 가지고 있던걸 재정립하여 "지이잉" 전기차만의 속성으로 바꿔줄수도 있다.
지이잉
충전중입니다
오늘 복습한 상속에 관한 내용은 처음에 이해가 잘 되지않아 강의를 여러번 다시 볼 필요가 있었다. 앞으로 나올 Dart문법이나 flutter에서도 이런내용들이 즐비할거기 때문에 여러번 반복해서 반복숙달할 필요를 느꼈다.
내일은 수강할 강의에 남은 내용들을 듣고 flutter 위젯에 관한 내용을 복습해보자.