미리 만들어놓은 클래스의 변수 등을 상속받아서 사용할 수 있다.

     

    클래스 상속
    // 클래스 이름 다음 콜론(:) 상속 받을 클래스 이름으로 상속 받을 수 있다.
    public class human : MonoBehaviour {
    	string humanName;
        public int humanAge;
    }
    
    // 상속 받은 변수 사용
    public class man : human {
    	humanAge = 5;
        humanName = "제주 노마드";
    }

    클래스 상속을 받은 뒤 그 안에 있는 변수, 함수 등을 사용할 수 있는데 모든 것을 사용할 수 없고 지정자에 따라 쓸 수 있는 게 있고 없는 게 있다.

     

    public은 사용할 수 있지만 아무것도 없는 것은 private가 생략되어 있는 것이므로 불러올 수 없다.

     

    C# 전역변수, 지역변수, 접근 지정자 클릭!

     

    지정자에 대해서는 위 링크를 참고하기 바란다.

    혹시 자기자신과 상속받은 자식 클래스에서만 사용하게 하고 싶다면 public 대신 protected를 쓰면 된다.

     

    가상함수 virtual

    클래스를 상속받으면 부모 클래스에 속해있는 함수를 사용할 수 있는데 함수를 다시 불러와서 쓰는 것뿐 아니라 자식 클래스에서 부모 클래스 함수를 재정의하게 할 수 있다.

    그것이 가능한 함수를 가상함수라고 한다.

    // 가상함수 만들기는 virtual을 써주면 된다.
    protected virtual void a()
    {
    	print("재정의 가능합니다.");
    }
    
    // 자식클래스에서 재정의하기
    protected override void a() // override를 쓰면 재정의할 수 있다.
    {
    	base a() // base는 부모 클래스를 말한다.
        print("재정의 되었습니다.") // 이렇게 원하는 내용을 괄호 안에 써넣으면 함수가 재정의 된다.
    }

     

     

    추상함수 abstract

    자식 클래스에서 기능을 완성시켜야 하는 함수로 예를 들어 아이디 생성 같은 걸 할 때 필수적으로 받아야 하는 데이터가 있다면 추상함수를 부모 클래스에 만든 뒤 자식 클래스가 상속받으면 해당 변수를 넣어주지 않으면 오류를 출력하므로 빠뜨리는 실수를 없앨 수 있다.

    // 추상함수 만들기 위해서는 클래스와 함수 앞에 abstract를 써줘야 한다.
    abstract public class parents : MonoBNehaviour
    {
    	abstract protected void A();
    }
    
    // 추상함수를 만들었다면 자식클래스에서 완성시켜야 한다.
    public class child : parents
    {
    	protected override void A() // 오버라이드로 재정의해주면 된다.
        {
        
        }
    }

     

    손자 클래스

    정식명칭은 아니고 그냥 내가 정해봤다.

     

    부모 클래스를 자녀 클래스가 상속을 받았다고 치자.

    그리고 그 자녀 클래스를 또다시 다른 클래스가 상속받을 수 있다.

    이렇게 되면 제일 아래 클래스는 부모 클래스와 자녀 클래스를 모두 상속받아 사용할 수 있게 된다.

     

    ※ 함께 읽으면 좋은 C# 기초

     

    C# 구조체 델리게이트 클릭!

    C# 컬렉션 리스트, 큐, 스택, 해시테이블, 딕셔너리, arraylist 클릭!

    C# 배열 선언, 사용법 클릭!

    C# 조건문, 반복문 클릭!

    C# 연산자, ++ 사용법 클릭!

     

    C# 전역변수, 지역변수, 접근 지정자 클릭!

    C# 함수 정의와 호출 클릭!

    C# 기본 자료형 클릭!

    C# print, 주석, 변수 클릭!