클래스 상속 예제 속시원내과 | 2019년 8월 3일

수정 후에도 “클래스 토끼가 객체를 확장”과 클래스 토끼에 여전히 중요한 차이가 있습니다. 많은 개체 지향 프로그래밍 언어는 클래스 또는 개체가 일반적으로 상속된 동작인 측면의 구현을 대체할 수 있도록 허용합니다. 이 프로세스를 일반적으로 재정의라고 합니다. 재정의는 복잡한 것을 소개합니다: 상속된 클래스의 인스턴스가 자체 클래스의 일부인 동작 또는 부모(기본) 클래스의 인스턴스를 사용하는 동작의 버전은 무엇입니까? 대답은 프로그래밍 언어마다 다르며 일부 언어는 특정 동작을 재정의할 수 없으며 기본 클래스에서 정의한 대로 동작해야 함을 나타내는 기능을 제공합니다. 예를 들어 C#에서 기본 메서드 또는 속성은 가상, 추상 또는 재정의 수정자로 표시된 경우에만 하위 클래스에서 재정의할 수 있습니다. [12] 재정의에 대한 대안은 상속된 코드를 숨기는 것입니다. 함수를 사용하여 많은 조건에 따라 클래스를 생성하고 이를 상속할 수 있는 고급 프로그래밍 패턴에 유용할 수 있습니다. Shark 자식 클래스는 Fish 상위 클래스의 __init__() 및 swim_backwards() 메서드를 성공적으로 오버로드하는 동시에 부모 클래스의 swim() 메서드를 상속합니다. 실제로 상속과 다형성은 java에서 함께 사용되어 코드의 빠른 성능과 가독성을 달성합니다.

다른 클래스에서 속성 및 특성을 파생 하는 클래스의 기능을 상속 이라고 합니다. 상속은 개체 지향 프로그래밍의 가장 중요한 기능 중 하나입니다. 하위 클래스: 다른 클래스에서 속성을 상속 하는 클래스를 하위 클래스 또는 파생 된 클래스 라고 합니다. 슈퍼 클래스: 하위 클래스에 의해 속성이 상속되는 클래스를 기본 클래스 또는 Super 클래스라고 합니다. “RedShape” 클래스를 만들려고 한다고 가정합니다. 클라이언트 코드가 색상을 변경하지 못하게 만들수 있는 방법은 무엇입니까? 답변: set을 재정의하여 비활성화색상 메서드를 사용합니다. 하위 클래스가 다른 하위 클래스에서 상속되는 위치입니다. “다단계 상속”그림과 같이 클래스가 다른 파생 클래스에서 파생되는 것은 드문 일이 아닙니다.

여기서 subclass_name은 하위 클래스의 이름이며 access_mode는 이 하위 클래스를 상속하려는 모드입니다. 참고: 파생 클래스는 개인 데이터 멤버에 대한 액세스를 상속하지 않습니다. 그러나 해당 클래스가 선언하는 모든 개인 멤버를 포함하는 전체 상위 개체를 상속합니다. 일부 언어는 다른 구문의 상속도 지원합니다. 예를 들어, 에펠에서 클래스의 사양을 정의하는 계약은 상속인에 의해 상속됩니다. 수퍼 클래스는 특수 하위 클래스가 상속, 수정 및 보완할 수 있는 공통 인터페이스 및 기본 기능을 설정합니다. 하위 클래스에서 상속된 소프트웨어는 하위 클래스에서 다시 사용되는 것으로 간주됩니다. 클래스의 인스턴스에 대한 참조는 실제로 해당 하위 클래스 중 하나를 참조할 수 있습니다. 참조되는 개체의 실제 클래스는 컴파일 타임에 예측할 수 없습니다.

균일한 인터페이스는 여러 다른 클래스의 개체의 멤버 함수를 호출하는 데 사용됩니다. 하위 클래스는 수퍼클래스 함수를 동일한 메서드 서명을 공유해야 하는 완전히 새로운 함수로 대체할 수 있습니다. 클래스 구문을 사용하면 클래스뿐만 아니라 확장 후의 모든 식을 지정할 수 있습니다. 시계에서 상속 하 고 매개 변수 정밀도 추가 하는 새 클래스 ExtendedClock 을 만듭니다-”틱” 사이 ms의 수입니다. 기본적으로 1000(1초)이어야 합니다. 다른, 더 문제가, 클래스 계층 구조를 개발에서 매우 일반적인 문제는 동물 상속으로 설명 하는 경우 매우 분명 하다-그리고 이것은 설명의 목적을 위해 좋은 일이다. 새들이 날아오죠? 글쎄, 모든 새들이 아닙니다…

Comments are closed.