추상 클래스

추상클래스 abstract


  • 추상클래스란 간단히 말해 뼈대를 만드는 겁니다
  • 추상클래스란 세부적인 구현은 자식에게 구현하도록 위임하고 본인은 최소한의 기능만 가지는 클래스입니다
  • 그렇기 때문에 실체화 할 수 없고 이를 상속받은 자식들만 실체화가 가능합니다
  • 가상함수와 다르게 무조건 자식에서 구현해야합니다, 가상함수는 자식이 구현안해도 부모꺼를 사용할 수 있습니다

구현방법

 abstract 키워드를 사용하여 정의합니다

public abstract class Car  //추상클래스 선언
{
	public abstract void Drive();   //추상 메서드는 구현부가 없고 abstract를 붙여줘야합니다
}

public class Sedan : Car
{
	public override void Drive()  //추상메서드는 오버라이드로 반드시 구현해줘야함 
    {
    	Console.WriteLinde("운전중");
    }
}

 

  • 추상클래스는 상속계층 구조에서 계약역할을 합니다
  • 이는 구조를 강제해 파생클래스들이 반드시 구현해야할 메서드를 구현하로독 해줍니다

is, as 키워드

  • is 키워드는 간단히 말해 좌항의 객체가 우항에 담겨도 문제가 없는가? 를 판단하는 키워드이다
  • as 키워드는 형변환인데 좌항을 우항으로 바꾼다, 하지만 실패시 null을 넣어줘서 더 안전한 변환이 가능하다
특징 is 키워드 as 키워드
목적 타입 호환성 검사 및 패턴 매칭
안전한 타입 변환 (캐스팅)
반환 값 bool (검사), 변수 할당 (패턴 매칭)
변환된 타입의 객체 또는 null
변환 실패 시 false 반환 (예외 없음)
null 반환 (예외 없음)
일반적인 사용 if 또는 switch 조건문에서 타입 확인
캐스팅 후 null 체크를 통해 안전하게 객체 사용

 


null 조건부 연산자 ?.

  • 객체가 null인지 아닌지 확인후 null이 아닐때만 멤버에 접근하거나 메서드를 호출할 수 있게 해주는 편리한 연산자입니다
  • 기본적으로 연산자의 왼쪽에 있는 객체참조가 null인지 확인합니다
//기존방식
string car = null;
if(Sedan != null)
{
	Car = Sedan.carname; //세단이 null이면 여기서 예외발생
}

//널 조건부 연산자 사용방식
string car = Sedan?.carname;
//만약 세단이 null이면 carname에 접근전에 연산이 멈추고 car는 null이 됩니다

'C# > 객체지향 활용과 응용 개발' 카테고리의 다른 글

메모리와 GC(가비지 컬렉터)  (0) 2025.11.15
상속  (0) 2025.10.10
Static  (0) 2025.10.10
생성자와 클래스 심화  (0) 2025.10.05
객체지향과 클래스  (0) 2025.10.05