📌 자바 상속 특징
상속
- 기존 클래스 재사용해서 새로운 클래스 작성
- 자손은 조상의 모든 멤버를 상속 받는다. (생성자, 초기화 블럭 제외)
=> 자손의 멤버 개수는 조상과 같거나 많다.
- 조상의 변경은 자손에 영향을 주지만,
자손의 변경은 조상에 영향을 주지 않는다.
Object 클래스
- 모든 클래스의 최고 조상
- 자바는 단일 상속만 가능
- Object 클래스 메소드는 모든 클래스에서 사용 가능하다.
(모든 클래스가 Object 클래스 상속하니까)
대표 메소드
- toString() : 클래스이름@객체주소값 출력
- equals()
- hashCode()
* println() 메소드에 참조변수만 넣으면 toString() 메소드 호출한다.
ex. println(c.toString()); = println(c);
📌 오버라이딩
오버라이딩
- 상속받은 조상 메서드 내용을 변경하는 것
오버라이딩 조건 3가지
1. 선언부 일치해야 함(이름, 매개변수, 리턴타입)
2. 조상 접근제어자와 동일하거나 넓은 범위(조상 범위보다 작아지면 안됨)
3. 예외는 조상 메서드와 같거나 적어야함
오버라이딩 VS 오버로딩
- 오버라이딩 : 상속받은 메서드 내용 변경(상속과 관련)
- 오버로딩 : 이름이 같은 새로운 메서드 정의(상속과 관련 없음)
supser 키워드
super : 참조변수
- 조상 멤버와 자신 멤버를 구별하는 참조변수
* this 는 lv와 iv 구별하는 인스턴스 자신 가리키는 참조변수
super() : 생성자
- 조상의 생성자
- 모든 클래스의 생성자 첫 줄에는 생성자를 호출해야 한다.
안적으면 컴파일러가 super(); 을 자동 추가
=> 조상 기본생성자 없으면 에러남
=> 클래스에 생성자 추가하면 기본 생성자는 꼭! 작성해준다.
(지금 작성한 클래스가 나중에 조상 클래스가 될 수도 있으니)
📌 final 키워드
- final : 마지막의, 변경될 수 없는
- 클래스, 메서드, 멤버변수, 지역변수에 사용 가능
- 클래스 : 조상이 될 수 없음(자식 클래스 가질 수 없다.)
메서드 : 오버라이딩 불가
멤버, 지역변수 : 상수 됨(더 이상의 변경이 없어서)
📌 추상 클래스
추상클래스 (미완성 클래스)
- 추상메서드를 포함하고 있는 클래스
- 완성된 설계도가 아니기 때문에 인스턴스 생성 불가
추상메서드 (미완성 메서드)
- 선언부만 있고 구현부가 없는 메서드
- 꼭 필요하지만 자손마다 다르게 구현되는 경우 사용
- 필수 기능을 자손에게 구현 강제시키는 의미가 있음
추상 클래스의 장점
- 코드 중복 제거
- 설계도 쉽게 작성
- 관리(변경)가 용이
'스터디 > 2209_자바의정석' 카테고리의 다른 글
8주차 과제 : 인터페이스 (0) | 2022.10.11 |
---|---|
7주차 과제 : 패키지 (0) | 2022.10.06 |
5주차 과제 : 클래스 (0) | 2022.09.26 |
4주차 과제 : 제어문 (0) | 2022.09.18 |
3주차 과제 : 연산자 (0) | 2022.09.18 |
댓글