객체가 구현해야 할 행동을 지정하는데 활용.
인터페이시를 생성하면 각각 U, I로 시작하는 두 개의 클래스가 생성됨
U는 보통 클래스가 인터페이스를 구현하고 있는지 확인 할 때 쓰인다.
보통 작업은 모두 I에서 진행한다.
U는 클래스 타입 정보를 제공하고
I는 실질적인 설계 및 구현이 들어간다.
언리얼 C++은 인터페이스가 반드시 추상 클래스일 필요가 없다.
(인터페이스 내에서 구현이 가능하다는 것)
다른 모던 객체 지향 언어와는 좀 다르지만 언리얼 내부 코드를 살펴보면 이런 특성을 종종 활용하는 모습이 있다고 한다.
만약 인터페이스에서 구현된 기능을 그대로 사용하고 싶다면
해당 인터페이스에서 직접 불러와야한다.
예를 들어 TestInterface
에 DoSomething()
을 정의 했다면 이를 상속받은 클래스에서는TestInterface::DoSomething()
로 인터페이스의 함수를 불러올 수 있다.
인터페이스를 사용하면 클래스가 수행해야 할 의무를 명시적으로 지정할 수 있어 좋은 객체 설계를 만드는데 도움이 된다!