gpt한테 물어보자!!!
언리얼 엔진에서 클래스와 인터페이스 쉽게 설명하기

1. 클래스(Class)란?

클래스는 "설계도" 같은 거야!

예를 들어, 자동차 설계도가 있다고 해보자.
이 설계도를 사용해서 진짜 자동차(객체)를 만들 수 있어.

class Car // 자동차 설계도
{ public: void Drive(); // 운전 기능 };

이 설계도를 이용하면 **진짜 자동차(객체)**를 만들 수 있어!

Car MyCar; // 자동차 한 대 생성
MyCar.Drive(); // 자동차 운전!

2. 인터페이스(Interface)란?

**인터페이스는 "공통 규칙"**이야!

자동차, 오토바이, 비행기는 모두 **"이동할 수 있는 탈것"**이야.
하지만 각각의 이동 방식(운전, 조종)은 다르지?

"모든 탈것은 이동할 수 있다" 라는 **공통된 규칙(인터페이스)**을 만들 수 있어!

class IMovable // "움직일 수 있는 것"이라는 규칙 { public: virtual void Move() = 0; // "움직이는 기능"을 만들어야 함 };

자동차, + 오토바이, ✈+ 비행기 모두 IMovable 인터페이스를 따라야 해!

class Car : public IMovable // 자동차도 "움직일 수 있는 것"이다!
{
public: void Move() override // 자동차는 이렇게 움직인다! {
    UE_LOG(LogTemp, Warning, TEXT("자동차가 달린다!")); } }; class Plane : public IMovable // 비행기도 "움직일 수 있는 것"이다! { public: void Move() override // 비행기는 이렇게 움직인다! { UE_LOG(LogTemp, Warning, TEXT("비행기가 난다!")); } };

이제 어떤 **"탈것"**이든 IMovable 인터페이스를 가지고 있으면 Move()를 실행할 수 있어!

void TestMove(IMovable* Movable) { Movable->Move(); // 어떤 탈것이든 이동할 수 있음! }

정리

클래스(Class) → "설계도" (자동차, 비행기 만드는 방법)
인터페이스(Interface) → "공통 규칙" (모든 탈것은 움직일 수 있어야 한다!)

인터페이스를 쓰면, 여러 개의 클래스가 같은 규칙을 따라야 해서, 코드가 더 깔끔해지고 유지보수하기 좋아져!

얘가 설명을 빠뜨린게 있네
인테페이스로 상속하면 인터페이스로 형변환이 가능할꺼야
IMovable m1 = car 이런식으로
다른 함수 등에 차나 뱅기 파라미터로 넘길때 받는 함수는 IMovable로 받아서 움직이면 되.
move하는 함수는 차든 뱅기든 지가 움직이겠지 하고 걍  신경끄고 move 호출해서 사용하면 되
c++도 그렇지?

java에선 대표적인게 db접속 jdbc가 있음



- dc official App