Human - Parent Class
Student - Child Class
1. 가상 함수 (virtual)
< Human Class >
protected virtual void Info() { print("사람"); }
< Student Class >
부모 클래스인 Human 클래스의 Info를 override 할 수 있다.
protected override void Info()
{
base.Info() // 부모 클래스의 Info() 실행
print("학생");
}
2. 추상 함수 (abstract)
: 코드가 길어질 경우 만들어야 할 함수를 잊고 만들지 않을 수 있다. 이런 실수를 하지 않기 위해 자식 클래스에서 만들어야할 함수들을
부모 클래스에 abstract로 선언할 수 있다. 단, 함수에만 abstract를 붙여줄 뿐만 아니라 부모 클래스 앞에도 abstract를 추가해주어야 한다.
< Human Class >
선언) abstract public class Human : MonoBehaviour { ... }
abstract가 붙여져 있는 함수는 '미완성'이라고 보면 되고 미완성된 함수가 있는 클래스도 미완성된 클래스로 생각하면 편하다.
abstract protected void Name(); // 추상 함수 선언으로 반드시 자식 클래스에서 이 함수를 선언하도록 강요
< Student Class >
protected override void Name() { print("이름"); } // 선언하지 않을 시 오류