Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- oracle
- DBMS
- nodejs
- 자바 추상메서드
- db
- 자바 제어문
- java super( )
- 자바 스트링클래스
- Java문자열 클래스
- 자바 String클래스
- Java객체배열
- 코딩
- Java다운캐스팅
- Java 내부 클래스
- 자바 Wrapper클래스
- Java업캐스팅
- Express
- 자바 내부 클래스
- 자바 try-catch
- 자바 예제
- Java thorw
- dbeaver
- 자바 Random클래스
- database
- Java try-catch
- 자바 문자열 클래스
- Java추상클래스
- Java 추상 메서드
- 데이터베이스
- 오라클
Archives
- Today
- Total
코딩이란 무엇일까
Java/자바 [13일차] (1)-메서드 오버라이딩(Overriding) 본문
글을 읽기 전 필자는 아직 코딩을 배우는 단계이므로 글의 내용이 부정확할 수 있습니다.
여러 가지 글과 책, 수업을 바탕으로 정리한 내용이니 알맞지 않은 내용이 있다면 댓글 남겨주시면 수정하겠습니다.
메서드 오버 라이딩이란?
메서드 오버라딩란 자식 클래스에서 부모 클래스의 메서드를 다시 정의하는 것을 말합니다.
메서드의 재정의 즉, 오버 라이딩이라고 하죠
메서드 재정의 방법
메서드의 재정의는 위에 말한 바와 같이 자식 클래스에서 부모 클래스의 메서드를 다시 정의해 주면 됩니다.
하지만 메서드를 재정의 할 때는 아래와 같은 규칙을 주의해서 재정의 해주어야 합니다.
- 부모의 메서드와 동일한 리턴 타입, 메서드 이름, 매개변수 목록을 가져야 합니다.
- 접근 제한을 더 강한 접근 제한으로 바꿀 수 없습니다.
- ex) public접근 제한을 가지고 있는 부모 메서드를 자식 메서드에서 default, private와 같은 접근 제한으로 수정 불가
메서드 오버라이딩 예시
부모 클래스
public class Parents {
public void info() {
System.out.println("저는 부모 클래스 입니다.");
}
}
자식 클래스
public class Children extends Parents{
@Override
public void info() {
System.out.println("자식 클래스의 메서드로 재정의 했습니다.");
}
}
메인 메서드
public static void main(String[] args) {
Parents p= new Parents();
Children c= new Children();
p.info(); //출력 결과: 저는 부모 클래스 입니다.
c.info(); //출력 결과: 자식 클래스의 메서드로 재정의 했습니다.
}
부모 클래스 Parents클래스의 info( ) 메서드를 자식 클래스인 Children에 맞추어 메서드를 재정의 해주었습니다.
@Override에서 @는 어노테이션이라 불리며 명령 실행에 도움을 주는 주석입니다.
부모 메서드 호출
자식 클래스에서 부모 클래스의 메서드를 재정의 한다면,
부모 클래스의 메서드는 숨겨지고 재정의 된 자식 메서드만을 사용됩니다.
하지만 자식 클래스 내부에서 재정의된 부모 클래스의 메서드를 호출해야 하는 상황이 발생한다면
부모 메서드 앞에 super. 을 붙여 부모 메서드를 호출할 수 있습니다.
super.부모 메서드
위의 메서드 오버 라이딩 예시에서 Children클래스의 재정의된 info메서드에 부모 메서드 info( )를 작성하여
확인해보겠습니다.
자식 클래스
@Override
public void info() {
System.out.println("자식 클래스의 메서드로 재정의 했습니다.");
super.info(); //부모 클래스 호출
}
메인 메서드
public static void main(String[] args) {
Parents p= new Parents();
Children c= new Children();
p.info(); //출력 결과: 저는 부모 클래스 입니다.
c.info(); //출력 결과: 자식 클래스의 메서드로 재정의 했습니다.
//저는 부모 클래스 입니다.
}
분명 실행내용은 위와 같지만
자식 클래스 내부에서 부모의 메서드를 호출하여
“저는 부모 클래스입니다” 까지 출력되는 결과를 볼 수 있습니다.
'국비지원수업' 카테고리의 다른 글
Java/자바 [14일차] (2)-Object 클래스 (0) | 2022.11.08 |
---|---|
Java/자바 [14일차] (1)-추상 클래스,추상 메서드 (0) | 2022.11.08 |
Java/자바 [프로그래머스 문제] (Lv.0 7의 개수), (Lv1.부족한 금액 계산하기) , (Lv1.없는 숫자 더하기) (0) | 2022.11.06 |
Java/자바[12일차](2)-다형성(PolymoPhism) (0) | 2022.11.05 |
Java/자바[12일차](1)-상속 (0) | 2022.11.05 |
Comments