티스토리 뷰
★ 오버로딩 vs 오버라이딩
☆ 오버로딩
- 같은 이름의 메서드 여러 개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 것
- 매개변수만 다른 것
(리턴 타입, 함수명은 같은데 파라미터만 다른 것)
☆ 오버라이딩
- 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의 해서 사용
- 자식 클래스에서 다시 만들어 쓰는 것
☆ 오버로딩, 오버라이딩 성립 조건
| 구분 | 오버로딩 | 오버라이딩 |
| 메서드 이름 | 동일 | 동일 |
| 매개변수, 타입 | 비동일 | 동일 |
| 리턴 타입 | 상관 없음 | 동일 |


톰이 물었다.
"너는 어떤 동물이야?"
제리는 알려주기 싫어 튕기면서 말했다.
"내 이름은 비밀인데?"
톰은 먼저 이름을 알려주었다. 그래서 제리가 말했다.
"톰 안녕, 나는 제리야" 라고.
이것을 출력할 것이다.
Animal.java를 만들었다.

1. string 타입의 name이라는 멤버 변수를 만들었다.
2. showname이라는 메서드를 만들었다.
이 메서드는 name을 넣으면 너는 name이야 라고 출력할 수 있다.
이것은 c언어에서 printf를 입력하고, %s string 타입을 넣으세요라고 해석할 수 있다.
"너는 어떤 동물이야?" 라고 출력하기 위해서
App.java를 보자.

someAnimal이라는 객체를 만들었다.
Animal 클래스의 name에 "어떤 동물"을 넣기 위해 someAnimal.name = "어떤 동물" 을 입력한다.
showName의 메서드를 이용하여 출력하면 된다.
출력 화면

제리가 튕겨서 "내 이름은 비밀인데?" 라고 말을 했다. 이 대사를 출력해보자.
Animal 클래스의 showName을 Mouse.java 클래스에서 오버라이딩한다.

1. Mouse 클래스가 Animal 클래스를 상속받게 한다.
2.Animal 클래스의 showName ( ) 메서드를 Mouse 클래스에서 재정의하도록 했다.
☆ 오버라이딩 (overriding)
- 재정의 : 상위 클래스의 메서드와 '같은' 메서드 이름, '같은' 인자 리스트
출력 화면

이제 톰 안녕 나는 제리야라고 출력해보자.
App.java에 톰을 넣는다.

App.java의 톰이 string yourName 인자값이 되도록 한다.

☆ 오버로딩 (overloading)
- 중복 정의 : ' 같은' 메서드 이름, ' 다른' 인자 리스트, 상위 클래스와 관련이 없는 개념
출력 화면


package com.overriding;
public class Animal {
public String name;
public void showName () {
System.out.printf("너는 %s이야",name);
}
}
package com.overriding;
public class Mouse extends Animal{
public String address;
public void showName() {
System.out.println("내 이름은 비밀인데?");
}
public void showName(String yourName) {
System.out.printf("%s 안녕,나는 %s야 \n", yourName, name);
}
}
package com.overriding;
public class App {
public static void main(String[] args) {
Animal someAnimal = new Animal();
someAnimal.name = "어떤 동물";
someAnimal.showName();
System.out.println();
Mouse jerry = new Mouse();
jerry.name = "제리";
jerry.address = "하와이";
jerry.showName();
jerry.showName("톰");
}
}'차곡차곡 > Java' 카테고리의 다른 글
| [Java] 배열 응용해보기 - Todo 데이터를 관리하는 별도의 Todo 클래스 생성하기 (0) | 2022.05.10 |
|---|---|
| [Java] 형 변환과 다형성 (0) | 2022.05.09 |
| [Java] 상속 (inheritance) - 의미 / 오버라이딩 (overriding) / super 예약어 (0) | 2022.05.08 |
| [Java] 오버로딩 (overloading) / 오버라이딩 (overriding) (0) | 2022.05.08 |
| [Java] Static 변수 (0) | 2022.05.08 |
- Total
- Today
- Yesterday
- Counter 만들기
- 리액트 이벤트 처리하기
- 콘솔 창 한글 깨짐
- 온량 서울숲점
- 풍기역맛집
- 엔티티매니저팩토리
- JPA애플리케이션개발코드
- 버튼누르면전구이미지변하기
- intellij 한글 깨짐
- JPQL이란
- react counter
- JPA
- 영주 한우
- JPA 기본키 매핑 전략
- 토마호크 맛집
- DDL 생성 콘솔 출력
- 꾸덕꾸덕 파스타 맛집
- 영주역 맛집
- 리액트 엘리먼트 렌더링하기
- 데이터베이스 스키마 자동 생성
- 커틀렛 맛집
- JPA라이브러리
- 영속성 관리
- pip 설치 오류
- React를 이용한 Counter 만들기
- 로제 파스타 맛집
- tick 만들기
- fragment태그
- React
- 엘리먼트 렌더링
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
