객체지향 강의를 들었음에도 이해가 되질않아 GPT 에게 물었다
캡슐화 - Encapsulation
데이터(변수)와 메서드(함수)를 하나의 단위로 묶고, 외부에서 직접 접근하지 못하도록 보호하는 개념
상속 - Inheritance
기존 클래스(부모)를 재사용하여 새로운 클래스(자식)를 만드는 개념
:(콜론) 을 사용하여 클래스 상속 가능
부모 클래스의 기능을 자식 클래스가 물려받아 양쪽에서 다 사용할 수 있음
다형성 - Polymorphism
같은 메서드가 다양한 형태로 동작할 수 있는 개념
오버라이딩(Overriding) 과 오버로딩(Overloading) 방식으로 구현 가능
메서드 오버라이딩 (Method Overriding)
부모 클래스의 메서드를 자식 클래스에서 재정의하는 기능
virtual 키워드 → 부모 클래스
override 키워드 → 자식 클래스
메서드 오버로딩 (Method Overloading)
같은 이름의 메서드를 매개변수의 타입 또는 개수를 다르게 하여 여러 개 정의하는 기능
class MathOperations
{
public int Add(int a, int b) // 정수 덧셈
{
return a + b;
}
public double Add(double a, double b) // 실수 덧셈 (오버로딩)
{
return a + b;
}
} / / Add 메서드를 중복으로 사용하였지만 매개변수가 달라 오버로딩 가능
추상화- Abstraction
필요한 정보만 외부에 제공하고, 불필요한 내부 구현은 숨기는 개념
공통 기능을 정의하고, 자식 클래스에서 반드시 구현해야 하는 메서드를 포함
일반 메서드와 추상 메서드(구현 없는 메서드)를 동시에 가질 수 있음
abstract class Animal // 추상 클래스
{
public void Eat() // 일반 메서드 (구현 있음)
{
Console.WriteLine("동물이 먹습니다.");
}
public abstract void MakeSound(); // 추상 메서드 (구현 없음)
}
class Dog : Animal // Animal 클래스를 상속받은 Dog 클래스
{
public override void MakeSound() // 반드시 구현해야 함
{
Console.WriteLine("멍멍!");
}
}
Dog myDog = new Dog();
myDog.Eat(); // "동물이 먹습니다." 출력
myDog.MakeSound(); // "멍멍!" 출력
-
- 현재글25.02.21(금) - TIL 25일차 Unity 입문
-