목표
객체지향의 4가지 특성
- 객체지향은 크게 캡슐화, 상속, 다형성, 추상화 4가지의 특성을 가진다.
- 추상화 (Abstraction) : 공통된 기능을 묶는것
- 캡슐화 (Encapsulation) : 데이터 구조와 데이터를 다루는 방법을 결합 시킨 것
- 상속 (Inheritance) : 상위 개념의 특징을 하위 개념이 물려받는 것
- 다형성 (Polymorphism) : 하나의 행동을 여러 방법으로 구현하고, 상황에 따라 적당한 구현을 선택해서 쓸 수 있는 기능을 제공하는 것
상속 (Inheritance)
- 상속을 사용하면 다른 클래스에 정의된 동작을 다시 사용 확장 및 수정하는 새 클래스를 만들 수 있다.
상속 예시
- 모든 동물의 속성으로 이름을 사용하기 위해 Animal 클래스를 정의하였다.
public class Animal
{
public string Name { get; set; }
public string GetSound()
{
Debug.Log("Get Animal Sound!!");
}
}
- Bird는 Animal를 상속받고 Fly라는 기능을 구현하였다.
using UnityEngine;
public class Bird : Animal
{
public void Fly()
{
Debug.Log("Fly!!");
}
}
- Dog도 Animal을 상속받고 Run이라는 기능을 구현하였다.
using UnityEngine;
public class Dog : Animal
{
public void Run()
{
Debug.Log("Run!!");
}
}
- 동물원에 Dog와 Bird를 생성해 보았다.
- Animal을 상속받았기 때문에, Dog와 Bird는 이름에 대한 속성과 소리에 대한 함수를 사용할 수 있다.
using UnityEngine;
public class ZooScript : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Bird bird = new Bird();
bird.Name = "bird";
bird.GetSound(); // Get Animal Sound!!
Dog dog = new Dog();
dog.Name = "dog";
dog.GetSound(); // Get Animal Sound!!
}
}