// 동물의 공통적인 행동을 정의한 Animal 클래스
public class Animal {
public void sound() {
System.out.println("Some generic animal sound");
}
}
// 개라는 구체적인 동물에 대한 Dog 클래스
public class Dog extends Animal {
@Override
public void sound() {
System.out.println("Bark");
}
}
// 고양이라는 구체적인 동물에 대한 Cat 클래스
public class Cat extends Animal {
@Override
public void sound() {
System.out.println("Meow");
}
}
// 동물들이 소리를 내는 동작을 테스트하는 코드
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // Dog 객체 생성
Animal myCat = new Cat(); // Cat 객체 생성
myDog.sound(); // 출력: Bark
myCat.sound(); // 출력: Meow
}
}
#include <iostream>
#include <string>
using namespace std;
// Animal 클래스: 동물의 공통적인 동작을 정의
class Animal {
public:
virtual void sound() {
cout << "Some generic animal sound" << endl;
}
};
// Dog 클래스: Animal을 상속하고 sound() 메서드를 재정의
class Dog : public Animal {
public:
void sound() override {
cout << "Bark" << endl;
}
};
// Cat 클래스: Animal을 상속하고 sound() 메서드를 재정의
class Cat : public Animal {
public:
void sound() override {
cout << "Meow" << endl;
}
};
// 메인 함수: 다형성을 활용하여 동물의 소리를 출력
int main() {
Animal* myDog = new Dog(); // Dog 객체 생성
Animal* myCat = new Cat(); // Cat 객체 생성
myDog->sound(); // 출력: Bark
myCat->sound(); // 출력: Meow
// 메모리 해제
delete myDog;
delete myCat;
return 0;
}
#include <stdio.h>
// 개의 소리를 내는 함수
void dogSound() {
printf("Bark\n");
}
// 고양이의 소리를 내는 함수
void catSound() {
printf("Meow\n");
}
// 메인 함수에서 각각의 동물 소리를 직접 호출
int main() {
dogSound(); // 출력: Bark
catSound(); // 출력: Meow
return 0;
}
| 객체지향 Java | 객체지향 C++ | 절차지향 c | |
|---|---|---|---|
| 1. 클래스 | O | O | X (포인터로 흉내 가능) |
| 2. 다형성 | O | O | X (포인터로 흉내 가능) |
참고