상속
- 기존의 클래스로 새로운 클래스를 작성하는 것(코드의 재사용)
- 두 클래스를 부모와 자식으로 관계를 맺어주는 것
- 자손은 조상의 모든 멤버를 상속받는다(생성자, 초기화블럭 제외)
- 자손의 멤버개수는 조상보다 같거나 많다
- 자손의 변경은 조상에 영향을 미치지 않는다.
- 조상의 변경은 자손의 변경에 영향을 미친다. (cannot be reslved or is not a field)
포함관계
클래스 간 관계 결정
상속관계 : A는 B이다. (is)
포함관계 : A는 B를 가지고 있다. (has)
오버라이딩
내용(구현부, {})만 변경가능하고, 선언부는 변경불가
System.out.println(p.toString());
System.out.println(p); 는 같은 표현이다.
오버라이딩 조건
1. 선언부가 조상클래스의 메서드와 일치해야한다.
여기서 선언부란, 반환타입, 메서드이름, 매개변수 목록을 뜻한다.
2. 접근제어자를 조상클래스의 메서드보다 좁은 범위로 변경할 수 없다.
접근제어자란 public, protected, (default) private
3. 예외는 조상클래스의 메서드보다 많이 선언할 수 없다.
오버로딩과 오버라이딩의 차이
오버로딩 기존에 없는 새로운 메서드를 정의하는 것(new), 이름이 같음. 상속과 관계없음.
오버라이딩 상속받은 메서드의 내용을 변경하는 것(change, modify)
참조변수 super
객체 자신을 가리키는 참조변수.
인스턴스 메서드(생성자)내에만 존재. (static메서드내에서 사용불가)
조상의 멤버를 자신의 멤버와 구별할 때 사용
비교 ) this(lv와 iv구별)와 유사
'Language > Java' 카테고리의 다른 글
Iterator, ListIterator, Enumeration (0) | 2022.01.11 |
---|---|
LinkedList (0) | 2021.12.18 |
객체지향프로그래밍1-2 (0) | 2021.10.26 |
[Java] 클래스의 정의 (0) | 2021.01.14 |
[Java] 객체배열 (0) | 2021.01.14 |