반응형
안녕하세요
프로그램을 개발 하다보면 오버로딩과 오버라이딩의 개념을 많이 들어보셨을 것 입니다
저도 가끔 오버로딩, 오버라이딩 용어가 비슷해서 헷갈릴 때가 있네요 ㅠ
이번 포스팅에서는 오버로딩과 오버라이딩에 대해서 알아보겠습니다!
목차
오버로딩(Overloading), 오버라이딩(Overriding)?
오버로딩(Overloading)
오버라이딩(Overriding)
Super() 메서드
오버로딩(Overloading), 오버라이딩(Overriding)?
오버로딩(Overloading) : 메서드의 이름이 같아도 매개변수의 타입과 개수가 다르면 사용이 가능한 개념
오버라이딩(Overriding) : 부모 클래스에서 정의된 메서드를 자식 클래스에서 다시 정의해서 사용하는 개념
개념이 전혀 다르지만 이름이 비슷비슷해서 많이 헷갈립니다;;
이제 예제를 통해서 알아보겠습니다!
오버로딩(Overloading)
오버로딩의 개념을 사용하여 구현한 내용입니다
같은 이름의 메서드지만 매개변수의 타입과 갯수가 달라 사용이 가능해집니다
public class Overloading {
public static void main(String[] args) {
CrazyKim();
CrazyKim("CrazyKim");
CrazyKim(100, 1000);
}
// 매개변수 없음
static void CrazyKim()
{
System.out.println("CrazyKim의 오버로딩 테스트입니다");
}
// 매개변수 1개
static void CrazyKim(String Blog)
{
System.out.println(Blog + "의 오버로딩 테스트입니다");
}
// 매개변수 2개
static void CrazyKim(int a, int b)
{
System.out.println("A + B = " + (a + b));
}
}
결과 화면
오버라이딩(Overriding)
오버라이딩의 개념을 사용하여 구현한 내용입니다
부모class와 자식class에서 같은 메서드를 사용하지만 자식class에서 메서드를 재정의하여 사용을 합니다
public class Overriding {
public static void main(String[] args) {
// 자식 호출
Child child = new Child();
// 변수 초기화
child.blog = "CrazyKim";
child.Period = 6;
// 자식에서 메서드 호출
child.CrazyKim();
}
}
// 부모 클래스 선언
class Mother {
public int Period;
public void CrazyKim() {
System.out.println("블로그는 만들어진지 " + Period + "년이 됐습니다.");
}
}
// 자식 클래스 선언
class Child extends Mother {
String blog;
public void CrazyKim() {
System.out.println(blog + "의 블로그입니다.");
}
}
결과 화면
Super() 메서드
추가사항으로 Super() 메서드를 사용하여 자식 class에서 부모 class의 메서드를 호출할 수 있습니다
아래와 같이 사용하면 됩니다
public class Overriding {
public static void main(String[] args) {
// 자식 호출
Child child = new Child();
// 변수 초기화
child.blog = "CrazyKim";
child.Period = 6;
// 자식에서 메서드 호출
child.CrazyKim();
}
}
// 부모 클래스 선언
class Mother {
public int Period;
public void CrazyKim() {
System.out.println("블로그는 만들어진지 " + Period + "년이 됐습니다.");
}
}
// 자식 클래스 선언
class Child extends Mother {
String blog;
public void CrazyKim() {
super.CrazyKim();
System.out.println(blog + "의 블로그입니다.");
}
}
결과 화면
여기까지 오버로딩과 오버라이딩의 차이점에 대해서 알아봤습니다!
반응형
그리드형
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] Cannot cast from Float to int 에러 해결 (0) | 2021.05.16 |
---|---|
[JAVA] 형 변환 방법(문자형 <-> 정수형 <-> 실수형) (0) | 2021.05.16 |
[JAVA/에러] No enclosing instance of type Overriding is accessible... 에러 해결 방법 (0) | 2021.05.16 |
[JAVA] 표준입출력 System.in 클래스 (0) | 2021.05.15 |
[JAVA] 숫자/소수점 반올림/올림/내림 방법 (0) | 2021.05.13 |