super 키워드 및 메소드 오버라이딩 이해하기
객체지향 프로그래밍(OOP)에서 super
키워드와 메소드 오버라이딩은 매우 중요한 개념입니다. super
키워드는 부모 클래스의 멤버를 참조할 때 사용되고, 메소드 오버라이딩은 자식 클래스가 부모 클래스의 메소드를 재정의하는 것을 의미합니다. 이 포스트에서는 이 두 개념을 자세히 살펴보겠습니다.
super 키워드란?
super
키워드는 자식 클래스에서 부모 클래스의 멤버(변수나 메소드)에 접근할 때 사용됩니다. 주로 다음과 같은 경우에 사용됩니다:
- 부모 클래스의 메소드를 호출할 때
- 부모 클래스의 생성자를 호출할 때
예제 코드
다음은 super
키워드를 사용하는 간단한 예제입니다:
class Animal {
String name = "동물";
void sound() {
System.out.println("동물 소리");
}
}
class Dog extends Animal {
String name = "개";
void sound() {
System.out.println("멍멍");
}
void printNames() {
System.out.println(name); // 자식 클래스의 name
System.out.println(super.name); // 부모 클래스의 name
}
void makeSound() {
sound(); // 자식 클래스의 sound
super.sound(); // 부모 클래스의 sound
}
}
public class Main {
public static void main(String[] args) {
Dog myDog = new Dog();
myDog.printNames(); // 개, 동물
myDog.makeSound(); // 멍멍, 동물 소리
}
}
메소드 오버라이딩이란?
메소드 오버라이딩은 자식 클래스가 부모 클래스의 메소드를 재정의하는 것을 의미합니다. 이를 통해 자식 클래스는 부모 클래스의 메소드 대신 자신만의 구현을 제공할 수 있습니다. 오버라이딩된 메소드는 부모 클래스와 동일한 메소드 이름, 반환 타입, 매개변수를 가져야 합니다.
예제 코드
다음은 메소드 오버라이딩의 예제입니다:
class Animal {
void sound() {
System.out.println("동물 소리");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("멍멍");
}
}
public class Main {
public static void main(String[] args) {
Animal myAnimal = new Dog();
myAnimal.sound(); // 멍멍
}
}
결론
super
키워드와 메소드 오버라이딩은 객체지향 프로그래밍에서 상속을 활용하는 중요한 기법입니다. super
키워드는 부모 클래스의 멤버에 접근할 수 있게 해주며, 메소드 오버라이딩은 자식 클래스가 부모 클래스의 메소드를 재정의하여 더 구체적인 동작을 구현할 수 있게 합니다. 이를 통해 코드의 재사용성과 유연성을 높일 수 있습니다.
'Java' 카테고리의 다른 글
[Java]자바에서 문자열 다루기: 생성부터 변환까지 (0) | 2024.06.03 |
---|---|
[Java]Abstract 함수 사용 방법 및 예시 (0) | 2024.06.03 |
[Java] 클래스 상속 및 Protected 접근 제어자 (0) | 2024.06.03 |
[JAVA]자바에서 getter / setter 함수 사용 (0) | 2024.06.03 |
[Java]클래스의 멤버 변수에 데이터를 세팅하는 3가지 방법 (0) | 2024.05.31 |