( == 재정의 )
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
( 호출 시 그 형태에 매핑되어서, 호출되도록)
파라미터의 종류나 순서나 갯수가 다른,
' 같은 이름의 메소드나 생성자를 여러개 정의하는 것 '
( 자식클래스에서, 부모클래스의 메소드 + 나의 메소드도 오버로딩 할 수 있다. )
1) 생성자
2) 메소드
( 파라미터에 따라 구분만 되면 상관없다. )
(자식클래스에서 같은 이름의 (파라미터가 다른) 메소드 만들 수 있음.
(byte > byte 없으면 int로 자동으로 변경, byte형이 있으면 그대로 byte형 메소드로 들어감. )
ex)day09/B.java
(1) this
1) 정의 : 자신의 ' 객체 ' 또는 ' 생성자' 를 의미하는 대명사
2) 사용 예 :
<1> 지역변수와 이름이 같은 멤버변수를 해당 지역에서 접근할 때 사용.
<2> 자신의 생성자를 호출할 때
<3> 자신의 객체를 다른 클래스에게 넘길 때.
day09/C.java
(2) super
1) 정의 : 부모의 ' 객체 ' 또는 ' 생성자' 를 의미하는 대명사
2) 사용 예 :
<1> 부모의 생성자를 호출할 때 사용.
<2> 이름이 같은 부모의 멤버변수를 자식에서 접근(호출)할 때 사용.
<3> 오버라이딩 되기 전의 부모 메소드를 자식에서 호출할 때 사용.
ex)day09/D.java