상속1-2)super./super()/오버라이딩
상속 1-1)상속?/extends/상속 class 예시
상속의 목적 매 클래스마다 중복된 코드들을 일일이 기록하게 되면 수정과 같이 유지보수를 할 경우에 매번 찾아서 수정을 해야하는 번거로움이 생깁니다. -> 상속이라는 개념을 이용해서 매 클
kwanghyung.tistory.com
오늘은 생성자 구문에서 초기화하는 방법에 super.와 super()를 예를 들어 보겠습니다.
저번 시간에 했던 상속 클래스를 보시고오시면 더 이해가 되겠습니다. Product 부모 클래스에서 변수를 지정하고 DeskTop 자식 클래스에서 상속을 합니다. 여기서 DeskTop 클래스에서 생성자구문에서 부모 클래스 변수를 불러 올때 3가지 방법으로 할 수 있습니다.
초기화 방법 3가지
1. 부모클래스의 필드들의 접근제한자를 private 에서 protected로 변경
2. 부모클래스의 setter를 이용하여 초기화 시키는 방법 super.setXXX
3. 부모 클래스의 생성자를 호출해서 초기화 하는 방법 super();
1번 방법 : 부모클래스의 필드들의 접근제한자를 private 에서 protected로 변경
Desktop 생성자는 super.으로 Product의 변수를 가져오고 있습니다.
2번 방법 : 부모클래스의 setter를 이용하여 초기화 시키는 방법 super.setXXX
Tv 클래스에서 생성자구문을 super.setXX로 가져옵니다.
3번 방법 : 부모클래스의 setter를 이용하여 초기화 시키는 방법 super.setXXX
Smartphone 생성자에서 super()로 이미 부모 변수를 가지고 오고 나머지 고유의 변수는 this는 가져옵니다.
super.와 super()의 변수를 가져오는 예시로 보여드렸습니다.
오버라이딩
오버라이딩이란?
자식 클래스가 상속 받은 부모 메소드를 재작성 하는 것을 말합니다. 부모가 제공하는 기능을 후손이 일부 고쳐 사용하겠다는 의미로 자식 객체를 통한 실행 시 후손 것이 우선권을 가집니다.
특징
- 메소드 헤드라인 위에 반드시 Annotation, @Override 표시해야 합니다.
- 접근 제어자를 부모 것보다 같거나 넓은 범위로 변경 가능합니다.
- 부모 메소드의 예외처리 클래스 처리범위보다 좁은 범위로 예외처리 클래스 수정 가능합니다.
성립조건
부모 클래스의 메소드와 자식 클래스의 메소드 비교
- 메소드 이름 동일
- 매개변수의 개수, 타입 동일
- 리턴 타입 동일
- private 메소드 오버라이딩 불가
오버리아딩 예시)
Phone (부모 클래스)에서 camera 메소드는 "카메라 기능"을 출력합니다.
Iphone은 (자식 클래스)는 오버라이딩 하여 camera 메소드를 정의했습니다. 만약에 new 연산자로 객체를 생성해서 camera 메소드를 iphone클래스를 호출하면 재정의된 메소드가 호출됩니다.
다음 시간에는 오버라이딩과 오버로딩을 비교하는것을 보여드리겠습니다.
'자바-자린이의 도전기' 카테고리의 다른 글
다형성1-1)업캐스팅/다운캐스팅 (0) | 2022.04.18 |
---|---|
상속1-3)오버로딩과 오버라이딩 비교/toString오버라이딩 (0) | 2022.04.10 |
상속 1-1)상속?/extends/상속 class 예시 (0) | 2022.04.08 |
객체배열-선언,할당/getter,setter,생성자 빨리 만들기 (0) | 2022.04.06 |
객체1-5) 오버로딩/Static/final변수 (0) | 2022.04.06 |
댓글
이 글 공유하기
다른 글
-
다형성1-1)업캐스팅/다운캐스팅
다형성1-1)업캐스팅/다운캐스팅
2022.04.18 -
상속1-3)오버로딩과 오버라이딩 비교/toString오버라이딩
상속1-3)오버로딩과 오버라이딩 비교/toString오버라이딩
2022.04.10 -
상속 1-1)상속?/extends/상속 class 예시
상속 1-1)상속?/extends/상속 class 예시
2022.04.08 -
객체배열-선언,할당/getter,setter,생성자 빨리 만들기
객체배열-선언,할당/getter,setter,생성자 빨리 만들기
2022.04.06