#7 Abstract

Yumin·2024년 11월 16일

Computer Science

목록 보기
7/17
public abstract class BaseClass {
    public abstract void display();
}

public class DerivedClass extends BaseClass {
    @Override
    public void display() {
        System.out.println("DerivedClass Display");
    }
}

C#에서 비슷한 개념의 Virtual도 있는데 의미가 살짝 다르다.
C#で似たような概念のVirtualもありますが、意味が少し違がう。

  • C#의 virtual:
    메서드, 속성, 이벤트 등을 오버라이드할 수 있도록 합니다.
    기본 구현을 제공할 수 있습니다.
    파생 클래스에서 선택적으로 오버라이드할 수 있습니다.

  • Java의 abstract:
    메서드에 대한 기본 구현을 제공하지 않습니다.
    반드시 파생 클래스에서 구현해야 합니다.
    클래스 자체도 abstract로 선언할 수 있으며, 이 경우 인스턴스화할 수 없습니다.

public class BaseClass {
    public virtual void Display() {
        Console.WriteLine("BaseClass Display");
    }
}

public class DerivedClass : BaseClass {
    public override void Display() {
        Console.WriteLine("DerivedClass Display");
    }
}

Virtual과 Abstract 둘다 기능이라고 생각한다. 물론 C#에도 abstract가 존재한다.

공통점은 모으고 차이점은 버리는 기능.
共通点は集めて、違いは捨てる機能。

이게 핵심 의미라고 생각한다.

profile
일본 게임회사에서 클라이언트 엔지니어로 활동중

0개의 댓글