일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Android
- 캐시워크정답
- 캐슬
- 이벤트
- 리브메이트
- 오늘의퀴즈
- 톹
- 초성퀴즈정답
- 오퀴즈
- spring게시판
- 캐시슬라이드
- 토스정답
- 자바
- 추천인
- 퀴즈
- TOSS
- 행운퀴즈정답
- java
- 캐시워크
- 초성퀴즈
- 행퀴
- ㄹㅂㅁㅇㅌ
- 돈버는퀴즈
- 안드로이드
- 행운퀴즈
- 캐웤
- 정답
- 토스
- 비트코인
- 오퀴즈정답
- Today
- 252,060
- Total
- 18,363,256
Gomdori
Java의 특성 및 각종 정보 -3 본문
상속(inheritance) : 객체와 객체를 연관시키고 계층구조를 만들어 코드를 재사용
- 부모클래스,상위클래스 => parent class, super class
- 자식클래스,하위클래스 => child class, sub class
- 오직 한 클래스만을 상속할 수 있다.
Object 클래스 = 최상위 클래스
상속 형식
class 클래스명 extends 상속클래스명
클래스명 => 하위 클래스
상속클래스명 => 상위 클래스
- 모든 클래스의 부모클래스 -> Object
- 상위 클래스의 접근지정자에 따라 접근이 제한
※ 접근지정자 : private,public,protected 등등..
<멤버상속> 접근가능도
클래스 내부 | 하위 클래스 | 외부 | |
Private | O | X | X |
Public | O | O | O |
Protected | O | O |
같은 패키지클래스를 상속한 경우(O) 다른 패키지클래스를 상속한 경우(X) |
friendly | O |
같은 패키지클래스를 상속한 경우(O) 다른 패키지클래스를 상속한 경우(X) |
같은 패키지클래스를 상속한 경우(O) 다른 패키지클래스를 상속한 경우(X) |
접근지정자 | |||
생략 |
오버라이딩(Overriding)
- 부모클래스의 메소드를 자식클래스에서 다시 재정의하는 것
※ 주의사항
1. 함수명이 같아야 한다.
2. 함수의 매개변수가 같아야 한다.
3. 리턴형이 같아야 한다.
final
(1) final이 클래스와 메소드에 붙는 경우
- 상속과 오버라이딩 불가
- 클래스와 메소드의 맨 앞쪽에 위치
(2) final이 변수에 사용되는 경우
static final int A = 10; // 수정불가!!
상속관계에서 생성자의 호출 순서
(1) 상위 클래스 생성자에서 부터 하위클래스 생성자 호출
- 매개변수가 없으면 자동호출이 됨. 매개변수가 있으면 상위 생성자를 호출해줘야 한다.
(2) 생성자에 매개변수가 있는 경우 자동호출이 안된다. - > super 키워드 사용
super : 하위 클래스에섯 상위클래스를 참조하여 접근할 때 사용
형식
- super.멤버변수명
- super.메소드명(매개변수)
super 사용
(1) 하위클래스에서 상위클래스의 메소드나 변수를 호출할 때 사용
(2) 하위클래스에서 상위클래스의 생성자를 호출할 때 super(매개변수) 또는 super()와 같이 사용
※ 하위클래스의 생성자 맨 첫줄에 있어야한다.
참조변수를 이용한 형변환과 호출
- 캐스트 연산자 사용()
- 형변환 규칙
(1) 하위클래스에서 상위클래스로 형변환할 수 있으며, 접근지정자에 따라 접근이 결정된다.
(2) 생성된 하위클래스에서 상위클래스 형변환을 통해 하위클래스의 멤버에 접근할 수 있다.
(3) 상위클래스의 메소드가 하위클래스에 오버라이딩(재정의)된 메소드를 호출하면 하위클래스의 메소드가 실행
같은 이름의 메소드명을 오버라이딩 할 시 하위클래스가 호출된다.
'코딩(Coding)' 카테고리의 다른 글
Java의 특성 및 각종 정보 -5(형변환(implicit Conversion)) (0) | 2019.09.16 |
---|---|
Java의 특성 및 각종 정보 -4 (0) | 2019.09.16 |
Java의 특성 및 각종 정보 -2 (0) | 2019.09.16 |
Java의 특성 및 각종 정보(데이터형) (0) | 2019.09.16 |
Java의 특성 및 각종 정보 (0) | 2019.09.16 |