다형성
1.
오버로딩
2.
오버라이딩
1. 오버로딩(Overloading)
•
같은 이름으로 자바 클래스 내에서 메소드를 여러 개 생성
•
오버로딩 조건 : 메소드 이름 동일, 매개변수 개수와 타입이 달라야함,
리턴값만 다른건 오버로딩 x
오버로딩 장점 - 메소드 이름 절약, 같은 기능을 하는 메소드를 하나의 이름으로 사용가능
오버로딩 단점 - 요구사항 변경 시 모든 메소드를 수정해야함
2. 오버라이딩(Overriding)
•
부모클래스로부터 상속받은 메소드를 자식 클래스에서 재정의
•
오버라이딩 조건 : 오버라이딩하고자 하는 메소드의 이름, 매개변수, 리턴 값이 모두 같아야 한다.
public class OverridingTest {
public static void main(String[] args) {
Person person = new Person();
Child child = new Child();
Senior senior = new Senior();
person.cry();
child.cry();
senior.cry();
}
}
class Person {
void cry() {
System.out.println("부모 클래스");
}
}
class Child extends Person {
@Override
protected void cry() {
System.out.println("자식 클래스(Child)가 부모 클래스(Person)의 cry 메소드 오버라이딩");
}
}
class Senior extends Person {
@Override
public void cry() {
System.out.println("자식 클래스(Senior)가 부모 클래스(Person)의 cry 메소드 오버라이딩");
}
}
Java
복사