추상 클래스와 추상 메서드
추상 클래스와 추상 메서드를 사용하는 예제를 하나 더 만들어 보겠습니다. 다음 내용을 입력한 후 실행해 보세요.
> public abstract class Shape //① 추상 클래스 . { . public abstract double GetArea(); //② 추상 멤버: 추상 메서드 . } > > public class Square : Shape //③ 추상 클래스를 상속하는 클래스 . { . private int _size; . public Square(int size) . { . _size = size; . } . . //부모 클래스인 Shape 추상 클래스의 추상 멤버인 GetArea() 메서드를 구현 . public override double GetArea() . { . return _size * _size; . } . } > > Square square = new Square(10); //ⓐ 자신의 이름으로 인스턴스 생성 > square.GetArea() 100 > Shape shape = new Square(5); //ⓑ 부모의 이름으로 인스턴스 생성 > shape.GetArea() 25
①처럼 abstract 키워드를 붙인 클래스를 추상 클래스라고 합니다.
②처럼 abstract 키워드를 붙인 멤버를 추상 멤버라고 합니다.
추상 클래스는 다른 클래스에 멤버를 상속하여 구현하도록 하는 역할을 합니다. Shape 클래스의 GetArea() 추상 메서드는 Square 클래스에서 구현하여, Main() 메서드에서 Square 클래스의 인스턴스를 Square 형식 변수 또는 부모 클래스인 Shape 형식 변수에 대입해서 사용할 수 있습니다.