자바에는 상속이라는 개념이 있습니다.
부모님이 자식에게 상속을 주듯, 상위 클래스에서 하위 클래스에게 상속을 주는 개념이 존재합니다.
예를 들면 상품이라는 부모 클래스에 전자제품, 음식 등 과 같은 자식 클래스를 상속해준다 라고 생각하면 됩니다.
그렇다면 상속을 하는 이유는 무엇일까요?
상속을 하는 이유는 상위 클래스에 있는 필드나 메소드들을 쉽게 불러와서 수정할 수 있기 때문입니다. 이를 통해 코드를 재사용성을 높여 유지보수를 하는데 큰 장점을 가집니다. 지금 공부할 때는 코드가 짧아 굳이 상속을 하면서까지 코드를 작성할 필요는 없겠지만, 나중에 현업에서는 코드의 수가 엄청 많기 때문에 해당 개념을 공부해야겠습니다.
1. 상속의 특징
1.1 코드 재사용
- 중복 코드를 줄이고, 상위 클래스에서 정의된 필드와 메소드를 하위 클래스에서 재사용할 수 있습니다.
- 한 번 작성한 코드를 여러 클래스에서 사용할 수 있어 생산성과 유지보수성이 높아집니다.,
1.2 계층 구조를 통한 설계
- 상속을 사용하면 클래스 간 계층 구조(예: 일반화와 특수화) 를 설계할 수 있습니다.
- 공통 기능은 상위 클래스에, 특수 기능은 하위 클래스에 구현하여 구조화 된 프로그램 설계가 가능합니다.
1.3 유지보수 용이성
- 상위 클래스에서 변경사항을 적용하면 이를 상속받는 모든 하위 클래스에 자동으로 반영됩니다.
- 코드의 일관성을 유지하고, 변경에 따른 작업을 최소화 할 수 있습니다.
1.4 코드의 가독성과 명확성
- 상속은 코드 구조를 명확하게 하고, 클래스 간의 관계를 이해하기 쉽게 만듭니다.
- 예를 들어, "자동차"라는 상위 클래스를 상속받은 "승용차", "트럭" 클래스는 자동차의 특성을 공유하지만, 각자의 고유 기능을 가지는 계층 구조를 통해 더 직관적으로 표현됩니다.
코드를 설명해보겠습니다.
Dog 라는 클래스는 Animal 이라는 클래스를 상속 받는 상황입니다. 그래서 클래스를 선언할 때, Dog extends Animal 을
붙여주었습니다. 자바에서 상속을 하려면 이처럼 extends 키워드를 사용해야만 가능합니다. 하위 클래스인 Dog 는 상위 클래스인 Animal의 필드에 있는 String name을 사용할 수 있게 됩니다. 따라서 dog 에 name 변수를 선언해주지 않아도
이미 Animal 에 선언되어있는 name 의 값을 불러올 수 있게 됩니다.
이후에 main 클래스로 넘어가 Dog 클래스의 객체인 dong 를 생성하여 메소드를 실행하면 출력이 됩니다.
2. super 키워드
- super 은 Java 에서 부모 클래스의 메소드나 생성자를 호출하거나, 부모 클래스의 필드에 접근하는데 사용되는 키워드 입니다. super 은 자식 클래스에서 부모 클래스의 기능을 사용할 때 유용하게 사용됩니다.
super 키워드는 자식 클래스에서 부모 클래스의 생성자, 메서드 또는 필드를 명시적으로 호출하고 참조할 때 사용됩니다. 이를 통해 상속 관계에서 부모 클래스의 기능을 확장하거나 수정할 수 있습니다.
우리가 필드에 있는 변수를 같은 클래스에서 가져오고 싶을때 this 를 쓰는 것 처럼, super 은 부모 클래스의 필드나 메소드, 생성자를 호출할 때 사용합니다.
'JAVA' 카테고리의 다른 글
2025.01.13 (월) 21일차 / 다형성 (0) | 2025.01.13 |
---|---|
2025.01.11 (토) / 참조 변수 (0) | 2025.01.11 |
25.01.07 (화) / 객체지향과 클래스 (0) | 2025.01.07 |
2025.01.06(월) 14일차 / 메소드 (0) | 2025.01.06 |
2025.01.05(일) 복습 / 배열 (0) | 2025.01.05 |