«inheritance» 태그된 질문

상속은 프로그래밍 언어 지원에 따라 기존 객체의 코드를 재사용하거나 기존 객체의 하위 유형 또는 둘 다를 설정하는 방법입니다.

14
“상속보다 선호되는 구성”이라는이 개념은 어디에서 왔습니까?
지난 몇 달 동안, "상속에 대한 선호 구성"이라는 진언은 아무데도 생겨나 고 프로그래밍 커뮤니티 내에서 거의 일종의 밈이 된 것 같습니다. 그리고 그것을 볼 때마다 조금 미스터리합니다. 누군가가 "해머보다 드릴을 선호한다"고 말한 것과 같습니다. 내 경험상 구성과 상속은 서로 다른 유스 케이스를 가진 두 가지 도구이며, 상호 교환 가능하고 하나가 …

9
다중 상속을 싫어하는“실제”이유가 있습니까?
나는 언어에서 다중 상속을 지원한다는 아이디어를 항상 좋아했습니다. 대부분의 경우 의도적으로 무시되었지만 "교체"라고 생각되는 것은 인터페이스입니다. 인터페이스는 단순히 다중 상속이 수행하는 모든 동일한 접지를 다루지 않으며, 이러한 제한으로 인해 더 많은 상용구 코드가 생길 수 있습니다. 내가 들어 본 유일한 기본 이유는 기본 클래스 의 다이아몬드 문제 입니다. 나는 그것을 …

5
상속보다 구성을 선호해야하는 이유는 무엇입니까?
나는 항상 구성이 상속보다 선호된다는 것을 읽었습니다. 예를 들어, 상속 과는 달리 컴포지션을 사용하는 것을 옹호하는 것과 같은 종류 의 블로그 게시물은 다형성이 어떻게 이루어지는 지 알 수 없습니다. 그러나 사람들이 구성을 선호한다고 말할 때 실제로 구성과 인터페이스 구현의 조합을 선호한다는 느낌이 들었습니다. 상속없이 어떻게 다형성을 얻을 수 있습니까? 상속을 …

12
SetWidth 및 SetHeight 메서드를 재정의하면 Rectangle에서 Square 상속이 문제가되는 이유는 무엇입니까?
사각형이 사각형 유형 인 경우 사각형에서 사각형을 상속 할 수없는 이유는 무엇입니까? 아니면 왜 나쁜 디자인입니까? 사람들이 말하는 것을 들었습니다. 사각형을 사각형에서 파생시킨 경우 사각형을 기대하는 모든 위치에서 사각형을 사용할 수 있어야합니다 여기서 무슨 문제가 있습니까? 사각형이 필요한 곳이라면 어디에서 Square를 사용할 수 있습니까? Square 객체를 생성하고 Square에 대한 SetWidth …

7
C #에서 확장 메서드가있는 인터페이스 대신 추상 클래스를 사용하는 경우
"Abstract class"와 "interface"는 비슷한 개념으로, 인터페이스가 두 가지 중 더 추상적 인 개념입니다. 차별화 요소 중 하나는 추상 클래스가 필요할 때 파생 클래스에 대한 메소드 구현을 제공한다는 것입니다. 그러나 C #에서는 최근에 확장 메서드가 도입되어이 차별화 요소가 줄어들어 인터페이스 메서드에 대한 구현을 제공 할 수 있습니다. 또 다른 차별화 요소는 …

11
프로그램을 여러 클래스로 나누는 것이 좋은 이유는 무엇입니까? [닫은]
저는 여전히 고등학교 (10 학년 입학) 학생이며 학교에서 실제 컴퓨터 과정을 수강하지 않았습니다. 내가 지금까지 한 모든 일은 책을 통해서입니다. 그 책들은 상속과 같은 개념을 가르쳐 주었지만 프로그램을 여러 클래스로 나누는 것이 어떻게 도움이됩니까? 책은 나에게 말하지 않았다. 나는 최근 프로젝트 때문에 주로 이것을 묻습니다. 아케이드 비디오 게임입니다. 일부 사람들이 …

17
OO 프로그래밍은 채용 회사가 배치하는 것만 큼 중요합니까? [닫은]
석사 과정을 마치고 (계산 중) 직업을 신청하고 있습니다. 많은 회사에서 특히 객체 방향에 대한 이해를 요구하는 것을 보았습니다. 인기있는 인터뷰 질문은 상속, 다형성, 접근 자 등에 관한 것입니다. OO가 정말 중요합니까? 나는 C에서 프로그래밍 작업에 대한 인터뷰를했고 인터뷰의 절반은 OO였습니다. 실제 응용 프로그램을 개발하는 실제 환경에서는 거의 항상 객체 방향이 …

1
믹스 인 또는 특성이 일반 다중 상속보다 어떻게 더 낫습니까?
C ++에는 일반 다중 상속이 있으며 많은 언어 디자인이 위험하다고 금지합니다. 그러나 Ruby 나 PHP와 같은 일부 언어는 이상한 구문을 사용하여 동일한 작업을 수행하고이를 믹스 인 또는 특성이라고합니다. 믹스 인 / 특성은 일반 다중 상속보다 남용하기가 어렵다는 것을 여러 번 들었습니다. 구체적으로 덜 위험하게 만드는 것은 무엇입니까? 믹스 인 / …

3
타입 시스템이란 무엇입니까?
배경 사이드 프로젝트로 언어를 디자인하고 있습니다. 작동하는 어셈블러, 정적 분석기 및 가상 머신이 있습니다. 내가 만든 인프라를 사용하여 사소한 프로그램을 이미 컴파일하고 실행할 수 있기 때문에 대학에서 프레젠테이션을하는 것에 대해 생각했습니다. 내 이야기에서 나는 VM이 ​​타입 시스템을 제공한다고 언급했다. " 당신의 타입 시스템은 무엇입니까? " 대답 한 후 나는 그 …

8
LSP vs OCP / Liskov 교체 VS Open Close
나는 OOP의 SOLID 원칙을 이해하려고 노력하고 있으며 LSP와 OCP는 비슷한 점이 더 많다는 결론에 도달했습니다. 개방 / 폐쇄 원칙은 "소프트웨어 엔티티 (클래스, 모듈, 기능 등)는 확장을 위해 개방되어야하지만 수정을 위해 폐쇄되어야한다"고 명시하고 있습니다. 간단히 말해서 LSP는 Foo모든 인스턴스 Bar가 파생 된 인스턴스로 대체 될 수 있으며 Foo프로그램은 동일한 방식으로 작동 …

5
왜 클래스를 상속하고 속성을 추가하지 않습니까?
우리의 코드베이스에서 다음과 같은 상속 트리를 찾았습니다. public class NamedEntity { public int Id { get; set; } public string Name { get; set; } } public class OrderDateInfo : NamedEntity { } 내가 수집 할 수있는 것으로부터, 이것은 주로 프론트 엔드에 물건을 묶는 데 사용됩니다. 나에게 이것은 generic에 의존하는 …

11
생성자 전용 서브 클래스 : 안티 패턴입니까?
나는 동료와 토론을하고 있었고, 결국 서브 클래 싱의 목적에 대해 직관이 상충되었습니다. 내 직감은 서브 클래스의 주요 기능이 부모의 가능한 범위의 값을 표현하는 것이라면 아마도 서브 클래스가 아니어야한다는 것입니다. 그는 반대 직관을 주장했다. 서브 클래 싱은 객체의 "특정"성을 나타내므로 서브 클래스 관계가 더 적절하다. 직관을보다 구체적으로 설명하기 위해 부모 클래스를 …


11
추상 클래스 / 메소드가 더 이상 사용되지 않습니까?
나는 많은 추상 클래스 / 메소드를 만들었습니다. 그런 다음 인터페이스를 사용하기 시작했습니다. 인터페이스가 추상 클래스를 더 이상 사용하지 않는지 확실하지 않습니다. 완전히 추상적 인 수업이 필요하십니까? 대신 인터페이스를 작성하십시오. 구현이 추상 클래스가 필요하십니까? 인터페이스를 만들고 클래스를 만듭니다. 클래스를 상속하고 인터페이스를 구현하십시오. 또 다른 이점은 일부 클래스는 부모 클래스가 필요하지 않지만 …

3
“상속성 구성”이“건조한 원칙”을 위반하고 있습니까?
예를 들어, 다른 클래스를 확장 할 클래스가 있다고 가정합니다. public class LoginPage { public String userId; public String session; public boolean checkSessionValid() { } } 일부 서브 클래스 : public class HomePage extends LoginPage { } public class EditInfoPage extends LoginPage { } 사실, 서브 클래스에는 재정의 할 메소드가 없으며 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.