어려울 거 같아서 미뤄뒀던 프로그래밍 공부 이번에 숨 딱 참고 Java 다이브 💦


💡 상속

상속이란 새로운 클래스를 작성할 때 기존에 존재하는 클래스를 물려받아 이용하는 거예요. 상속을 사용하면 코드를 재사용하고 코드의 중복을 줄일 수 있어요. 상속은 단일 상속만 가능해요.

📎 클래스 간의 상속이란?

  • 클래스간에는 부모-자식의 상속 관계를 설정할 수 있어요.
  • 부모클래스 A를 자식클래스 B가 상속받을 때, B는 A의 모든 멤버변수와 메서드를 자신의 것으로 상속받게 돼요. (단, private으로 설정된 기능과 final, 생성자는 상속되지 않아요.)

📎 상속 정의 방법

  • extends 키워드를 사용하여 부모 클래스의 이름을 명시한다.
	//public class 자식클래스 extends 부모클래스{ ... }
    public class Parents{}
    public class No{}
    public class Child extends Parents{}
    // public class Child extends Parents, extents No{}
    // 단일 상속만 가능해요.
    

📎 클래스 다이어그램을 통한 상속의 표현

  • 클래스의 구조를 표현하는 클래스 다이어그램에서, 상속은 자식 클래스가 부모클래스를 가리키는 화살표로 표현해요.
  • 상속관계가 이루어 질 때 부모 클래스를 super 클래스 라고 한다.

📎 상속의 활용

(1)

  • 기존에 존재하는 클래스의 소스 수정 없이 기능을 확장하고자 하는 경우에 상속을 한다. (정상적으로 잘 기능하고 있던 클래스에 새로운 기능 추가로 인해서 버그, 예외 등이 발생할 수 있어요. 그래서 본 클래스 자체를 수정하기 보다는 본 클래스를 상속하는 자식 클래스를 작성하는 편이 좋아요.)
  • CalcChild 클래스는 CalcParent 클래스를 상속받기 때문에, 별도의 소스코딩 없이도 plus(), minus()를 포함하게 돼요.
  • CalcChild 클래스에 times(), divide() 메서드를 추가하면, 상속받은 메서드에 새로운 기능을 추가하는 효과를 얻을 수 있어요.

(2)

  • 여러 개의 클래스에서 공통되는 기능을 추출하여 공유할 수 있어요.
  • 질문/답변 게시물의 한 단위를 표현하기 위한 QNAArticle 클래스와 자료실의 게시물을 표현하기 위한 FileArticle은 글 번호와 제목이라는 공통된 특성을 갖어요.
  • Article 클래스는 QNAAricle 클래스와 FileArticle 클래스가 공통적으로 포함하고 있는 멤버변수인 "글번호(num)","제목(title)"과 이 변수들에 대한 getter, setter를 추출한거에요.
  • 이와 같이 공통 기능을 별도의 클래스로 추출해 내면, 코드의 재사용 및 수정이 용이해요.



다음 다이브에서 또 만나요 🌊




출처
https://media.giphy.com/media/l2Je1bFuOpkNpyqYM/giphy.gif
https://media.giphy.com/media/Jbb3KS22397YQ/giphy.gif

0개의 댓글