ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2024.03.05 - 상속(inheritance), 접근 제한자
    C# 2024. 3. 6. 01:10

     상속(inheritance)은 캡슐화(encapsulation), 다형성(polymorphism)과 함께 객체 지향 프로그래밍의 주요한 특징들 중 하나이다. 상속을 사용하면 기존 클래스(부모 클래스)에 정의된 동작을 다시 사용, 확장 및 수정하는 새 클래스(자식 클래스)를 만들 수 있다.  

     

    • 상속의 구현(부모 클래스 Car와 자식 클래스 Truck, SUV)
    class Car
    {
        public int velocity;
        public void Accel() {
            Console.WriteLine("붕~붕~");
        }
        public void Break() {
            Console.WriteLine("끼이ㅣ익");
        }
    }

     

     자동차(Car)라는 개념이 있다. 자동차에는 트럭도 있고, SUV도 있고... 많은 종류의 자동차가 있다. 트럭도, SUV도 모두 자동차가 가진 기본 동작(속력, 전진, 후진 등등..)을 가지고 있다. 트럭과 SUV같이 자동차라는 개념으로 묶인 클래스를 만들 때 이런 동작을 각각 따로따로 만들어줄 필요가 없다. 자동차라는 부모 클래스에서 동작들을 상속받으면, 트럭과 SUV는 부모 클래스인 자동차가 가진 동작들을 가지게 된다.

     

    class Truck : Car { }
    class SUV : Car { }

     

     

    상속받는 자식 클래스 이름 옆에 : 와 부모 클래스 이름을 붙여주면 상속이 이루어진다.

     

    Truck과 SUV 클래스는 상속받은  Car 클래스의 동작을 수행할 수 있다. 

     

     

    • 상속과 접근 제한자(public, protected, private)

    접근 제한자로 접근이 제한되어 있는 클래스의 동작들은, 상속하더라도 자식 클래스에서 접근하지 못할 수 있다. (쉽게 말하면 부모 클래스에서 제한된 변수, 함수 들은 상속 받은 자식 클래스에서 사용이 불가능 할 수 있다.)

     

     

    - public 접근 제한자

    public으로 제한된 타입은 해당 클래스 내부, 상속한 자식 클래스 뿐만 아니라 클래스 외부에서 마음대로 접근할 수 있다. 정보 은닉을 위해서는 사용을 지양해야 하는 접근 제한자이다.

     

    - protected 접근 제한자

    protected로 제한된 타입은 해당 클래스와 상속한 자식 클래스에서만 접근이 가능하다.

     

    - private 접근 제한자

    private로 제한된 타입은 해당 클래스 내부에서만 접근 가능하다. 클래스 외부 뿐만 아니라 상속한 자식 클래스에서도 접근이 불가능하다.

     

     

     

     

Designed by Tistory.