#TIL Java 9일차 Study, 오버라이딩, 오버리딩, this, super

Yimy·2020년 10월 31일
0

Java Study

목록 보기
8/15

17. (메소드) 오버라이딩 ( Overriding )

(1) 상속관계 에서 부모의 메소드의 일(내용)을 자식에서 바꾸는 것.

( == 재정의 )

(2) 조건

1) 메소드 이름이 같아야 함. (void m1, void m2는 안 됨.)
2) 반환타입이 일치해야 함. (void, int 는 안 됨.)
3) 생성자는 불가. (메소드만 가능)
4) 파라미터의 '타입''순서''개수' 가 모두 일치해야 한다. (변수명은 달라도 됨.)

void m(String, int) , void m(int int) 는 되지 않음.
(string int 와 int int 가 같지 않아서)

5) 자식메소드의 접근제한자가 부모메소드의 접근제한자보다 범위가 넓거나 같아야 한다.

ex) day09 / A.java

18. 오버로딩 ( Overloading )

( 1 ) 정의

( 호출 시 그 형태에 매핑되어서, 호출되도록)
파라미터의 종류나 순서나 갯수가 다른,
' 같은 이름의 메소드나 생성자를 여러개 정의하는 것 '
( 자식클래스에서, 부모클래스의 메소드 + 나의 메소드도 오버로딩 할 수 있다. )

( 2 ) 종류

1) 생성자
2) 메소드

( 3 ) 특징

1) 반환타입, 접근제한자와 관계 없음.

( 파라미터에 따라 구분만 되면 상관없다. )

2) 상속관계라면, 다른 클래스에서도 오버로딩이 가능하다.

(자식클래스에서 같은 이름의 (파라미터가 다른) 메소드 만들 수 있음.

3) 형변환이 가능한 파라미터라도 오버로딩으로 인정

(byte > byte 없으면 int로 자동으로 변경, byte형이 있으면 그대로 byte형 메소드로 들어감. )

ex)day09/B.java

19. this 와 super

(1) this

1) 정의 : 자신의 ' 객체 ' 또는 ' 생성자' 를 의미하는 대명사

2) 사용 예 :

<1> 지역변수와 이름이 같은 멤버변수를 해당 지역에서 접근할 때 사용.

<2> 자신의 생성자를 호출할 때

<3> 자신의 객체를 다른 클래스에게 넘길 때.

  • '나' 가 주어이면 생략이 가능하다. (this.)

day09/C.java

(2) super

1) 정의 : 부모의 ' 객체 ' 또는 ' 생성자' 를 의미하는 대명사

2) 사용 예 :

<1> 부모의 생성자를 호출할 때 사용.

<2> 이름이 같은 부모의 멤버변수를 자식에서 접근(호출)할 때 사용.

<3> 오버라이딩 되기 전의 부모 메소드를 자식에서 호출할 때 사용.

ex)day09/D.java

profile
Better version

0개의 댓글