728x90
반응형
안녕하세요! 오늘은 새로운 코드 예제를 통해 자바에서 `super`와 `this` 의 활용을 알아보도록 하겠습니다.
Pizzeria 클래스
먼저, `Pizzeria` 클래스를 살펴봅시다. 이 클래스는 "알베르토 피자 본점"이라는 이름을 가지며, `restaurantName` 메서드를 통해 해당 피자집의 이름을 출력합니다.
class Pizzeria {
String name = "알베르토 피자 본점";
public Pizzeria() {
}
public void restaurantName() {
System.out.println("피자 맛집: " + name);
}
}
PizzeriaNo2 클래스
다음으로, `PizzeriaNo2` 클래스를 살펴봅시다. 이 클래스는 `Pizzeria` 클래스를 상속하며, 새로운 이름 "알베르토 강남점"을 가지고 있습니다. 생성자를 통해 다른 이름으로 초기화할 수 있으며, `restaurantName` 메서드를 통해 현재 클래스와 상속받은 부모 클래스의 이름을 출력합니다.
class PizzeriaNo2 extends Pizzeria {
String name = "알베르토 강남점";
public PizzeriaNo2() {
}
public PizzeriaNo2(String str) {
name = str;
}
public void restaurantName() {
System.out.println("본점: " + super.name); // 부모 클래스의 이름 출력
System.out.println("2호점: " + this.name); // 현재 클래스의 이름 출력
System.out.println("2호점: " + name); // 현재 클래스의 이름 출력
}
}
SuperThisTest 클래스
마지막으로, `SuperThisTest` 클래스에서는 `PizzeriaNo2` 객체를 생성하고 메서드를 호출하는 예제를 살펴봅시다.
public class SuperThisTest {
public static void main(String[] args) {
// 첫 번째 객체 생성
PizzeriaNo2 res = new PizzeriaNo2();
res.restaurantName();
System.out.println("=======================");
// 두 번째 객체 생성
PizzeriaNo2 res2 = new PizzeriaNo2("알베르토 역삼점");
res2.restaurantName();
}
}
실행 결과
본점: 알베르토 피자 본점
2호점: 알베르토 강남점
2호점: 알베르토 강남점
=======================
본점: 알베르토 피자 본점
2호점: 알베르토 역삼점
2호점: 알베르토 역삼점
위의 실행 결과를 살펴보면, 첫 번째 객체에서는 `super` 키워드를 통해 부모 클래스의 이름을 가져오고, 두 번째 객체에서는 생성자를 통해 초기화된 새로운 이름이 출력되는 것을 확인할 수 있습니다. 이처럼 `super`와 `this` 키워드는 상속 관계에서 부모 클래스와 현재 클래스의 멤버에 접근하는 데에 사용됩니다.
이상으로 자바에서 `super`와 `this` 의 활용 예제와 실행 결과를 살펴보았습니다.
728x90
반응형
'Java > Java Advance' 카테고리의 다른 글
자바 상속과 생성자 활용하기 (0) | 2024.01.30 |
---|---|
Spring Framework에서 ModelAndView 사용하기 (1) | 2023.11.22 |
상속과 메서드 오버라이딩의 활용 (0) | 2023.10.15 |
자바 생성자와 상속 관계의 이해 (0) | 2023.10.15 |
자바에서의 클래스 상속과 일반화 관계 (0) | 2023.09.24 |