일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 프로그래머스 #알고리즘 #mysql #인기있는 아이스크림 #코린이 #개발자 #study
- 프로그래머스 #동명 동물 수 찾기 #mysql #데이터베이스 #db #코린이 #개발자 #알고리즘
- 프로그래머스 #모음 제거 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #mysql #역순 정렬하기 #알고리즘 #코린이 #개발자 #study
- 백준 #4153 #직각삼각형 #알고리즘 #자바 #java #코린이 #개발자 #study
- 백준 #네 번째 점 #3009 #자바 #java #알고리즘 #코린이 #개발자 #study
- mysql #min() #max() #최소값 #최대값 #코린이 #개발자 #study
- 프로그래머스 #나이 정보가 없는 회원 수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #동명 동물 수 찾기 #알고리즘 #코린이 #개발자
- 프로그래머스 #mysql #흉부외과 또는 일반외과 의사 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #이름이 있는 동물의 아이디 #코린이 #개발자 #study
- 프로그래머스 #잡은 물고기 중 가장 큰 물고기의 길이 구하기 #알고리즘 #mysql #코린이 #개발자 #study
- 프로그래머스 #mysql #12세 이하인 여자 환자 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #가장 큰 물고기 10마리 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #한 해에 잡은 물고기 수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #과일로 만든 아이스크림 고르기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #아픈 동물 찾기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #조건에 맞는 회원수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #경기도에 위치한 식품창고 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 특정 옵션이 포함된 자동차 리스트 구하기 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #코린이 #개발자 #study
- 백준 #다이얼 #5622 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #어린 동물 찾기 #코린이 #개발자 #study
- 백준 #
- 프로그래머스 #알고리즘 #mysql #
- 백준 #일곱 난쟁이 #2309 #자바 #java #알고리즘 #코린이 #개발자 #study
- 코린이 #개발자 #study
- 프로그래머스 #python 개발자 찾기 #알고리즘 #mysql #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #자동차 대여 기록에서 장기/단기 대여 구분하기 #코린이 #개발자 #study
- 프로그래머스 #잡은 물고기의 평균 길이 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- Today
- Total
luke
[자바/Java] - 상속 본문
상속 관계
상속은 객체 지향 프로그래밍의 핵심 요소 중 하나로, 기존 클래스의 필드와 메서드를 새로운 클래스에서 재사용하게 해준다. 이름 그대로 기존 클래스의 속성과 기능을 그대로 물려받는 것이다. 상속을 사용하려면 'extends' 키워드를 사용하면 된다. 그리고 'extends' 대상은 하나만 선택할 수 있다.
용어 정리
- 부모 클래스 (슈퍼 클래스): 상속을 통해 자신의 필드와 메서드를 다른 클래스에 제공하는 클래스
- 자식 클래스 (서브 클래스): 부모 클래스로부터 필드와 메서드를 상속받는 클래스
상속 관계 사용 코드를 보겠다.
<Car>
public class Car {
public void move() {
System.out.println("차 움직여요~.");
}
}
위 코드는 부모 클래스 이다. 자동차의 공통 기능인 'move()'가 포함되어 있는 것이다.
<K5>
public class K5 extends Car {
public void Buy() {
System.out.println("K5 뽑았어요.");
}
}
K5 클래스는 'extends Car'를 사용해서 부모 클래스인 'Car'를 상속 받는다. 상속 덕분에 'move()'를 사용할수 있다.
<K9>
public class K9 extends Car {
public void Buy() {
System.out.println("K9 뽑았어요.");
}
}
K9 클래스도 마찬가지로 'extends Car'를 사용해 부모 클래스인 'Car'를 상속 받아 'move()'를 사용할수 있다.
그럼 메인클래스에서 확인 해보자.
<CarMain>
public class CarMain {
public static void main(String[] args) {
K5 k5 = new K5();
k5.move();
k5.Buy();
K9 k9 = new K9();
k9.move();
k9.Buy();
}
}
<실행 결과>
차 움직여요~.
K5 뽑았어요.
차 움직여요~.
K9 뽑았어요.
K5,K9은 'Car'를 상속 받은 덕분에 k5.move(), k9.move()를 사용할 수 있다.
상속과 메모리구조를 위 코드로 이야기 하자면 k5인스턴스가 생성 되는 순간 참조값은 하나이지만 실제로 그 안에서는 두가지 클래스(k5,Car) 정보가 공존한다. 상속이라고 해서 단순하게 부모의 필드와 메서드만 물려 받는게 아니다.
상속 관계를 사용하면 부모 클래스도 함께 포함해서 생성된다. 외부에서 볼대는 하나의 인스턴스를 생성하는 것 가티만 내부에서는 부모와 자식이 모두 생성되고 공간도 구분된다.
중요!!!!
- 상속 관계의 객체를 생성하면 그 내부에는 부모와 자식이 모두 생성된다.
- 상속 관계의 객체를 호출할 때, 대상 타입을 정해야 한다. 이때 호출자의 타입을 통해 대상 타입을 찾는다.
- 현재 타입에서 기능을 찾지 못하면 상위 부모 타입으로 기능을 찾아서 실행한다. 기능을 찾지 못하면 컴파일 오류가 발생한다.
※ 출처: Inflearn 김영한-Java 강의 중
'Study > Java' 카테고리의 다른 글
[자바/Java] - 다형성(1)(다운캐스팅, 업캐스팅) (0) | 2024.01.14 |
---|---|
[자바/Java] - 오버라이딩, 오버로딩 (2) | 2024.01.13 |
[자바/Java] - 자바 메모리 구조(스택과 큐 자료 구조) (0) | 2024.01.12 |
[자바/Java] - 접근 제어자(private,default,protected,public) (0) | 2024.01.08 |
[자바/Java] - 객체 지향, 절차 지향 (0) | 2024.01.08 |