오늘 수업시간에 상속과 추상 클래스, 인터페이스에 대해서 공부를 하게 되어, 포스팅에서 간단하게 상속의 개념에 대해서 정리하고 넘어가보겠습니다.
상속(Inheritance)은 Class 간의 관계를 설정하는 방법입니다. 클래스 간의 관계를 설정해서 코드를 재사용하고, Class들을 계층적인 구조로 구성할 수 있게 해줍니다.
더 쉽게 말하자면, 부모와 자식 관계로 이해할 수 있습니다.
부모 클래스(Class)
는 자식 클래스
에게 자신의 기능(메서드)과 속성(필드)을 물려줍니다. 여기서 기능과 속성은 부모가 자식에게 물려주는 재산이라고 생각하면 쉽습니다.
이렇게 하면 자식 클래스
는 부모 클래스
의 기능을 그대로 사용하면서, 필요한 경우에는 기능을 추가하거나 변경하여 사용할 수 있습니다.
Dart 코드에서의 클래스 상속은 사진과 같이 이루어집니다.
위의 사진에서 Suv
와 Sedan
은 Car Class
를 상속 받고 있습니다. 이때, extends
를 사용해 상속을 받는데, Car
의 모든 멤버(필드) 변수와 메서드를 @override
와 super
를 통해 상속받을 수 있습니다.
상속을 통해 Suv
와 Sedan
은 Car Class
의 멤버(필드 변수와 메서드)들을 사용할 수 있고, 필요한 경우에는 기능을 추가하거나 변경할 수도 있습니다.
이러한 상속 관계를 통해 기존에 작성된 클래스를 재사용하여 새로운 클래스를 생성할 수 있습니다. 이는 코드를 더 간결하게 만들고, 유지보수를 쉽게 해주며 자식 클래스는 부모 클래스의 기능을 변경하거나 확장할 수 있어서 코드를 유연하게 만들어줍니다.
오늘 수업을 들으면서 제일 흥미로웠던 것은 상속 받는 클래스
가 상속하는 클래스
를 가리키는 다이어그램으로 표현한다는 점이었습니다. 이러한 부분이 특이해서 인상깊게 보았던 것 같습니다.