Overriding & Overloading
Overriding
상위 클래스의 메서드와 이름과 용례(signature)가 같은 함수를 하위 클래스에 재정의하는 것을 말한다.
즉, 상속 관계에 있는 클래스 간에 같은 이름의 메서드를 정의하는 것을 말한다.
하위 클래스에 있는 애들마다 똑같은 메소드를 다르게 쓰고싶을테니까
class Parent {
void display() { System.out.println("부모 클래스의 display() 메소드입니다."); }
}
class Child extends Parent {
void display() { System.out.println("자식 클래스의 display() 메소드입니다."); }
}
/*class Child extends Parent {
void display() {
super()
System.out.println("자식 클래스의 display() 메소드입니다.");
}
이렇게해서 parent의 display()를 쓸 수 있긴 한데 애초에 오버라이딩 하는 목적 자체가
포괄적인 부모 클래스에서 좀 더 세부적인 부분을 하려고 자식 클래스를 만든건데
굳이 부모 클래스의 것을 쓰려는 것 자체가 조금 모순이니까 보통 그렇게 하진 않음
but, super();쓰면 가능하긴함
}*/
public class Inheritance05 {
public static void main(String[] args) {
Parent pa = new Parent();
pa.display();
Child ch = new Child();
ch.display();
Parent pc = new Child();
pc.display(); // Child cp = new Parent();
}
}
부모 클래스의 display() 메소드입니다.
자식 클래스의 display() 메소드입니다.
자식 클래스의 display() 메소드입니다.
Overloading
두 메서드가 같은 이름을 갖고 있으나 인자의 수나 자료형이 다른 경우를 말한다.
public double computeArea(Circle c) { ... }
public double computeArea(Circle c1, Circle c2) { ... }
public double computeArea(Square c) { ... }
'Backend > Java' 카테고리의 다른 글
Java 직렬화 (0) | 2022.07.27 |
---|---|
Java 예외 처리 (0) | 2022.07.26 |
Java Generic, Collection에 대해 (0) | 2022.07.26 |
Java Grammer (version. Jiwon) (0) | 2022.07.19 |
JDK란? JRE, JVM에 대한 정리 (0) | 2022.07.16 |