BackEnd/JavaProgram
[ JAVA ] 오버로딩(Overloading)과 오버라이딩(Overriding)
jimin-log
2023. 1. 30. 01:18
오버로딩(Overloading)
오버로딩이란 매개 변수가 다른 동일한 이름의 메서드가 여러개 존재하는 것을 말한다.
💡 오버로딩의 특징
매개 변수의 타입(데이터형,자료형)또는 매개 변수의 갯수가 다를때 오버로딩이 가능하다.
//1 ---> 가능
public int overloading(int x, int y) {
return x+y;
}
//2 ---> 1번과 같은 데이터 형으로 불가능
public int overloading(int a, int b) {
return a+b;
}
//3 ---> 가능
public int overloading(int x, short y) {
return x+y;
}
//4 ---> 가능
public int overloading(short x, int y) { //
return x+y;
}
//5 --->가능
public int overloading(int x, int y, int z) {
return x+y + z;
}
오버라이딩(Overriding)
부모(슈퍼) 클래스로부터 상속받은 메소드를 자식(서브) 클래스에서 사용하는 것을 말한다.
자식 클래스에서 물려받은 메소드는 재정의하거나 또는 추가하여 사용할 수 있다.
부모 클래스의 중복된 내용은 그대로 사용하고 싶다면 super 키워드와 도트(.)연산자를 사용하면된다.
// 자식 생성자
public SpecialMember(String id, String name, String address, String memberSelect) {
super(id, name, address); //부모생성자 호출
this.memberSelect = memberSelect;
}
// 부모메서드에서 사용한 show를 통해 고객 정보를 동일하게 출력 + 포인트 추가 출력
@Override
public void show() {
super.show(); // super 부모의 메서드를 호출하기 위해 사용
if(memberSelect.equals("특별")) {
printPoint();
System.out.println(memberSelect +"회원 보너스 포인터 적립 : " + point);
}
System.out.println("-----------------------");
}
💡 오버라이딩 특징
- 상속관계 (부모 클래스의 메서드를 자식 클래스에서 재정의)
- 부모메서드의 시그니처가 일치해야한다. ( 접근제어자 / 리턴형 / 이름 / 파라미터 )
- 자바의 다형성을 나타낼 수 있다.