생성자 오버라이딩 업캐스팅
2024. 7. 26. 19:17ㆍ정보처리,전산/JAVA
반응형
// Animal 클래스 선언
class Animal {
// Animal 클래스의 생성자
public Animal() {
// 생성자가 호출될 때마다 "Always called" 출력
System.out.println("Always called");
}
// Animal 클래스의 makeSound 메서드
public void makeSound() {
// 메서드 호출 시 "Animals make sounds" 출력
System.out.println("Animals make sounds");
}
}
// Animal 클래스를 상속받은 Cat 클래스 선언
class Cat extends Animal {
// Cat 클래스의 makeSound 메서드 (오버라이딩)
public void makeSound() {
// 부모 클래스(Animal)의 makeSound 메서드 호출
super.makeSound();
// "Meow" 출력
System.out.println("Meow");
}
}
// Animal 클래스를 상속받은 Dog 클래스 선언
class Dog extends Animal {
// Dog 클래스의 makeSound 메서드 (오버라이딩)
public void makeSound() {
// 부모 클래스(Animal)의 makeSound 메서드 호출 주석 처리
// super.makeSound();
// "Woof" 출력
System.out.println("Woof");
}
}
// Main 클래스 선언
public class Main {
// main 메서드 - 자바 프로그램의 시작점
public static void main(String[] args) {
// Animal 객체 생성
Animal animal = new Animal();
// Cat 객체를 Animal 타입으로 생성 (업캐스팅)
Animal animal1 = new Cat();
// Dog 객체를 Animal 타입으로 생성 (업캐스팅)
Animal animal2 = new Dog();
// Cat 객체의 makeSound 메서드 호출
animal1.makeSound();
// Dog 객체의 makeSound 메서드 호출
animal2.makeSound();
}
}
- 생성자는 클래스가 인스턴스화될 때 호출되는 특별한 메서드로, 클래스명과 동일하며 반환 타입이 없다.
- 업캐스팅은 자식 클래스의 객체를 부모 클래스 타입으로 참조하는 것. 이를 통해 다형성을 구현할 수 있다.
반응형
'정보처리,전산 > JAVA' 카테고리의 다른 글
final 키워드 (1) | 2024.09.17 |
---|---|
환경 변수 설정한 JAVA 버전 확인이 안될 때 (0) | 2024.08.08 |
생성자의 오버로딩 (Overloading) (0) | 2024.07.17 |
화씨 값을 섭씨 값으로 변환 (0) | 2024.07.16 |
1차 배열 내림차순 정렬 (0) | 2024.06.01 |