추상 클래스를 상속 받는 친구가 하는 일

2021. 5. 19. 20:53·개발중/Java
목차
  1. 추상 클래스를 상속 받는 친구가 하는 일 🌞
728x90
반응형

추상 클래스를 상속 받는 친구가 하는 일 🌞


추상클래스가 뭘 하는지 알아봤으면 이제 써먹어 볼까요 ?

 

CalculatorDecoPlus 라는 Class 가 있어요.

이건 언니가 아는 클래스 처럼 생겼죠 ?

class CalculatorDecoPlus {
    
}

 

근데 요로코롬 extends 를 써주고 Calculator를 써준다는 것이 뭔 뜻인지 알아요 ?

class CalculatorDecoPlus extends Calculator {
    
}

 

여기서도 단어 먼저 보면 extends 라는 뜻을 찾아보면

확장한다! 즉 상속을 받는거에요!

 

 

즉, 아래처럼 말하는 거에요.

 

CalculatorDecoPlus라는 Class 는

Calculator 에 모든 기능을 상속 받겠다.

 

 

그런데 상속만 받으면 아래처럼 에러가 나요.

이런 에러래요 근데 이 버튼 보여요 ?

 

 

이거 누르면 어떻게 되냐면

아래처럼 오버라이드가 두개가 생겨요.

 

 

Calculator 가 말한거에요.

 

이자식아 너 내 재산 상속받고 싶으면 내가 정의한 추상 메소드 구현해야 해 ~

아니면 넌 날 쓸 수 없어 @^^@

 

그래서 CalculatorDecoMinus 는 어미(Calculator)의 기능을 쓰면 

자신이 해야 할 일들이 줄어들기 때문에 할 수 없이

 

엄마 알았어요 저는 엄마가 정의한 run() 도 필요하고 left와 right 도 필요하기 때문에 정의 할께요!

 

라고 하고 있는거에요.

class CalculatorDecoMinus extends Calculator {
    public void sum(){
        System.out.println("- sum :"+(this.left+this.right));
    }
    public void avg(){
        
    }
}

 

이해를 시키려고 위에처럼 말했지만 사실은 Calculator 가 가진 계산 기능을

다른 누군가 필요로 하는 상황이 빈번하게 사용하는경우 사용해요.

공통적인 기능을 여러번 구현하면 중복되는 코드도 많아지고 더러워지고 산으로 가고...

이 부분이 이해 되면 나중에 다시 설명해줄께요. 🤪

 

근데 자세히 보면 이렇게 써있는데 this.left this.right 는

아무리 봐도 CalculatorDecoMinus Class 에서 선언하지 않았는데,,

어떻게 쓰는거 같은지 한번 생각 해봐요!

 System.out.println("- sum :"+(this.left+this.right));

 

아까 Calculator 에서 가지고 있던 변수들 이죠 ?

Calculator 를 상속 받았기 때문에 

Calculator 의 변수들에도 접근하고 자신의 변수처럼 사용할 수 있는거에요!

 

엄마 간식을 내 간식처럼 먹고

엄마 신발을 내 신발처럼 신는 것 처럼 ?

 

 

엄마가 sum 이랑 avg 오버라이드 하지 않으면 안된다고 했으니까 마저 구현해주면

class CalculatorDecoMinus extends Calculator {
    public void sum(){
        System.out.println("- sum :"+(this.left+this.right));
    }
    public void avg(){
        System.out.println("- avg :"+(this.left+this.right)/2);
    }
}

 

그래서 지금 Calculator 를 상속 받은 CalculatorDecoMinus 의 일은 끝이 난거에요.


 

728x90
반응형
저작자표시 (새창열림)

'개발중 > Java' 카테고리의 다른 글

추상 클래스 이해하기  (0) 2021.05.19
추상 클래스를 상속 받는 친구를 이용하기  (0) 2021.05.19
추상 클래스가 하는 일  (0) 2021.05.19
문자열이 List에 포함 되었는지 여부 확인  (0) 2021.05.18
Java - String 날짜형 Type 검사  (0) 2021.05.17
  1. 추상 클래스를 상속 받는 친구가 하는 일 🌞
'개발중/Java' 카테고리의 다른 글
  • 추상 클래스 이해하기
  • 추상 클래스를 상속 받는 친구를 이용하기
  • 추상 클래스가 하는 일
  • 문자열이 List에 포함 되었는지 여부 확인
Binsoo
Binsoo
내 트러블 슈팅
  • Binsoo
    정수빈 기술블로그임.
    Binsoo
  • 전체
    오늘
    어제
    • 빈수 개발자 개발 일기 (930)
      • 개발중 (632)
        • Spring Boot (95)
        • Spring Security (2)
        • Spring Batch (6)
        • Spring Boot & Redis (13)
        • Java Persistence API (JPA) (28)
        • Web (42)
        • Rest Api (7)
        • Spring Concurrency Control (3)
        • Redis (8)
        • Kubernetes (k8s) (4)
        • MYSQL (35)
        • AirFlow (15)
        • Docker (2)
        • Git (22)
        • Linux (9)
        • JSON Web Tokens (JWT) (4)
        • Troubleshooting (87)
        • Swagger (0)
        • Vue.js (52)
        • Java (74)
        • html (12)
        • C (5)
        • jQuery (15)
        • JavaServer Pages (JSP) (17)
        • Arduino (1)
        • JavaScript (35)
        • Amazon Web Services (AWS) (11)
        • Algorithm (9)
        • 참고 기능 (16)
        • mongo (2)
      • PROJECT (27)
        • 스프링부트+JPA+몽고 API 개발 (3)
        • MINI (2)
        • 게시판 (3)
        • vue 프로젝트 (1)
        • JPA 사이드 프로젝트 기록 (17)
      • TEAM STUDY (156)
        • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (8)
        • 한 권으로 읽는 컴퓨터 구조와 프로그래밍 (12)
        • NAVER DEVELOPER (4)
        • LINUX (23)
        • PYTHON (19)
        • SERVER (8)
        • 알고리즘 코딩 테스트 스터디 (31)
        • 쿠버네티스 (40)
        • 대세는 쿠버네티스 [초급~중급] (11)
      • BOOK (0)
      • 자격증 (61)
        • 리눅스 1급 - 필기 기록 (19)
        • 네트워크 관리사 (2)
        • 네트워크 관리사 2급 - 실기 기록 (21)
        • 네트워크 관리사 2급 - 필기 기록 (16)
        • 정보처리 (2)
      • 직장인 대학원 (17)
        • 기록 (1)
        • 캐글 스터디 (3)
        • R (12)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    파이썬
    스프링
    java
    리눅스 마스터 1급 정리
    springboot
    redis
    리눅스 마스터 1급
    파이썬 알고리즘
    네트워크 관리사 2급 실기
    네트워크 관리사 실기
    jpa
    리눅스 마스터
    네트워크 관리사
    네트워크 관리사 2급
    네트워크 관리사 요약
    git
    리눅스 1급 요약
    Git 저장소
    네트워크 관리사 자격증
    리눅스 마스터 1급 요약
    docker
    쿠버네티스 스터디
    Spring
    쿠버네티스
    네트워크 관리사 학점
    BackendDevelopment
    REST API
    VUE
    리눅스 마스터 요약
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Binsoo
추상 클래스를 상속 받는 친구가 하는 일

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.