일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 신경망구현
- C언어 알고리즘
- 밑바닥부터시작하는딥러닝
- 백준
- c언어
- C언어알고리즘
- 신경망 학습
- 파이썬
- 알고리즘
- FTZlevel10
- 정보보안
- 파이썬신경망
- 딥러닝파이썬
- BOF
- 스트림암호
- 딥러닝
- BOJ
- C알고리즘
- 신경망파이썬
- 달고나bof
- 백준알고리즘
- 활성화함수파이썬
- 항등함수
- 보안
- 신경망
- 버퍼오버플로우
- 8086CPU레지스터
- 머신러닝
- 인공지능
- 소프트맥스함수
- Today
- Total
HeeJ's
[03] 메서드 오버로딩, 메서드 오버라이딩 :: Java 본문
메서드 오버로딩
: 메서드 이름은 같지만 메서드 시그니처가 다른 메서드를 정의하는 것
* 메서드 시그니처
: 메서드 이름과 매개변수의 개수, 데이터 타입, 순서 를 의미
- 메서드의 이름이 같아야한다
- 메서드의 매개변수의 개수 혹은 타입이 달라야 한다.
ex :
...
public static int max(int n1, int n2){
int result = n1 > n2 ? n1 : n2;
return result;
}
public static double max(double n1, double n2){
double result = n1 > n2 ? n1 : n2;
return result;
}
public static int max(int n1, int n2, int n3){
return max(max(n1,n2),n3);
}
매개변수의 데이터 타입, 데이터 개수가 다르고 이름은 같이 사용할 수 있다.
사용할 때, 매개변수를 보고 그에 맞는 메서드가 호출된다.
메서드 오버라이딩
: 물려받은 메서드를 자식 클래스에게 맞도록 수정하는 것
(상속 관계에서만 나타남)
- 부모 클래스의 메서드와 동일한 시그니처를 사용한다.
- 부모 클래스의 메서드보다 접근 지정자가 좁아질 순 없다. 넓어질 수는 있음
- 부모 클래스의 메서드보다 추가적인 exception을 나타낼 수 없다.
- interface를 구현해서 메서드를 오버라이딩 할 때는 반드시 접근 지정자를 public으로 해야한다.
- private 메서드는 상속 자체가 되지 않는다.
- static(정적) 메서드는 클래스 소속이기 때문에 상속되지 않는다
- final 예약어가 지정된 메서드는 더이상 수정할 수 없으므로 오버라이딩할 수 없다.
[Source] - [Override/implement Methods...]
오버라이딩할 메서드 V하기
ex:
부모 클래스:
public class Circle{
...
public void area(){
System.out.println("원의 넓이");
}
}
자식 클래스:
public class Ball{
...
@Override
public void area(){
System.out.println("구의 넓이");
}
}
라고 했을 때,
public class inheritance{
public static void main(String[] args){
Circle c1 = new Circle();
Ball c2 = new Ball();
c1.area();
c2.area();
}
}
를 출력한다면,
오버라이딩 전:
원의 넓이
원의 넓이
오버라이딩 후:
원의 넓이
구의 넓이
super 키워드:
부모 키워드의 오버라이딩 된 메서드를 사용할 때
ex:
자식 클래스:
public class Ball{
...
@Override
public void area(){
super.area();
System.out.println("구의 넓이");
}
}
이를 실행해보면:
원의 넓이 //부모 클래스의 메서드 실행
구의 넓이
가 출력된다.
'<Programming> > <JAVA>' 카테고리의 다른 글
[04] Generic :: Java (0) | 2020.06.24 |
---|---|
[02] 상수, 데이터 입력 :: Java (0) | 2020.06.11 |
[01] Package Explorer :: Java (0) | 2020.06.11 |