* 상속 *
클래스가 가지고 있는 "멤버들(변수/메소드)"를 다른 클래스에서 직접 만들지 않고
상속 받음으로써 자신의 "멤버(변수/메소드)" 처럼 사용할 수 있는 기능
특징
1) 모든 클래스는 "Object" 클래스의 후손이다
2) 부모클래스의 "생성자", "초기화 블록"은 상속되지 않는다
3) 부모의 "private" 멤버는 상속은 되지만 직접 접근 불가하다
4) 자바에서는 "단일상속"만 지원한다
5) 자식 클래스에서 부모클래스의 생성자를 호출할 때 "super([인자값,...])"를 사용한다
멤버(변수/메소드)에 접근할 때 "super.변수/메소드"를 사용한다
- 표현식
[접근제한자] class 클래스명(자식) extends 클래스명(부모) {}
오버라이딩
+ 성립조건
* "메소드명" 동일
* 매개변수 개수, 자료형, 순서 "동일"
* 부모메소드의 "반환타입" 동일
* 부모메소드의 접근제한자보다 범위가 같거나 커야함
* 다형성
+하나의 타입(클래스, 인터페이스)으로 여러 객체를 관리할 수 있는 기능
+ 메소드 정의 시 "매개변수"로 다형성을 적용하게 되면 메소드 갯수가 확 줄어듬
동적바인딩
: 프로그램 실행 시 동적으로 자식클래스의 "오버라이딩(재정의)" 된 메소드를 찾아서 실행
* 인터페이스
- 클래스가 구현해야 할 기능을 [ 추상 ] 메소드로 규격 정의
- 인터페이스 구현 시 [ implements ] 키워드 사용
+ 표현식 +
접근제한자 예약어 class 클래스명 implements 인터페이스명 {}
- 모든 필드는 기본적으로 [ public static final ] 키워드가 적용됨
상속
- [ extends ] 키워드 사용
+ 표현식 +
// 인터페이스에 다른 인터페이스를 상속
접근제한자 interface 인터페이스명 extends 인터페이스명1, 인터페이스명2 {}
// 클래스에 인터페이스를 상속(구현)
접근제한자 예약어 class 클래스명 implements 인터페이스명1, 인터페이스명2 {}
상속을 통해 클래스는 다른 클래스의 [ 필드(변수) ]와 [ 메소드 ]를 물려받음
* 추상클래스
- [ 추상 ] 메소드가 포함된 클래스
- [ abstract ] 키워드 사용
+ 표현식 +
접근제한자 abstract class 클래스명 {}
'자바' 카테고리의 다른 글
자바 정리 2 (0) | 2024.07.10 |
---|---|
java 복습 정리 (0) | 2024.07.10 |
java 과제 (0) | 2024.06.23 |