본문 바로가기

다형성

유니티24_C#14_인터페이스(Interface) 인터페이스(Interface) 클래스는 하나의 부모클래스만 상속할 수 있다. 즉, 여러 부모클래스로 부터 상속받을 수 있는 '다중 상속'을 할 수 없다. 인터페이스는 클래스가 다중상속을 할 수 없는 단점을 보완하기 위해 만들어진 개념이다. 즉, 클래스는 인터페이스를 여러 개 상속받을 수 있다. 인터페이스의 구조는 추상클래스와 비슷한데 공통점은 추상화를 사용한다는 것이다. 인터페이스는 다음과 같이 만든다. 인터페이스 선언은 interface 라는 키워드를 사용한다. 인터페이스 이름은 클래스명과 구별할 수 있도록 이름 앞에 대문자 I (아이)를 붙여 만든다. 메서드, 프라퍼티(property 속성), 인덱서(indexer) 등을 멤버로 가질 수 있다. 멤버는 모두 추상화만 가능하다. 즉, 멤버 선언만 할 수.. 더보기
유니티19_C#_12_다형성 이번에는 객체 지향 언어에서 클래스라는 구조를 지지하는 다형성(Polymorphism)에 대해 알아본다. poly는 many(많은)이라는 뜻이고, morph는 form, shape(모양)이라는 뜻이다. 그래서 다형성은 '많은 모양을 가짐'이라는 뜻이다. 생물학에서 다형성은 유전자의 변이를 나타내는 것과 같이 코딩에서 다형성은 클래스의 메서드가 형태는 같지만 다른 역할로 변이할 수 있다는 것을 말한다. 간단한 예로 앞 글 '상속'에서 보았듯이 base클래스(부모)에서 파생된 derived클래스(자식)가 여러 개 또는 다양한 형태로 만들어질 수 있다는 것이 바로 다형성이다. 메서드 오버라이드(override) override는 '위에 + 올라타다'가 합쳐진 글자인데 기존 상태를 짓밟고 올라타서 다른 것으로 .. 더보기
쌩초보를 위한 기초_24_Inheritance_상속 Inheritance 상속 Inheritance(상속)는 그녀(her)의 안에(in) 넣어서 전달하는 것이다. 그것은 유전자이다. 자신의 유전자를 부모에게서 받아 자식에게 전달하는 것이 상속이다. 마찬가지로 프로그래밍에서의 상속도 같은 역할을 한다. 자식 클래스를 만들 때 부모 클래스의 property(속성)과 기능을 물려받는다. 정확히 말하면 그 속성과 기능을 이용할 수 있다는 뜻이다. 상속은 객체지향 프로그래밍(Object Oriented Programming)의 가장 큰 장점 중의 하나이다. 모든 클래스의 시조(최초) 클래스를 superclass(슈퍼클래스)라 하고 그 이름은 Any 이다. any의 뜻이 '어떤' 이므로 정확한 이름도 없는것 같다. 하여튼 '어떤 클래스(Any Class)'가 클래스.. 더보기