오늘 인터뷰에서이 질문을 받았지만 이해할 수 없습니다. 나는 시작부터 진보 된 질문에 이르기까지 모든 것을 요구 받았다. 상속과 다형성에 대해 설명하고 있었는데이 질문이 떠 올랐습니다. 분명히 [C#/C++] 클래스의 모든 메서드를 재정의하려 시도한 적이 없지만 특정 메서드 (예 : .ToString)를 재정의하는 데 필요한 것이 있다는 것을 인식하지 못했습니다. 질문을 잘못 해석했거나 필요한 것이 있습니까? 그렇다면 무엇이이 요구 사항을 강제합니까?.NET에서 함수를 재정의하려면 무엇이 필요합니까?
답변
- 기본 클래스는 기본 클래스의 메서드가 표시되어야합니다
sealed
- 수
virtual
이나abstract
당신이 virtual
또는 abstract
로 선언해야합니다 재정의하는 방법 (그리고이 아니어야합니다 비 밀폐형). 그렇지 않으면 에만을 숨길 수 있습니다.
C++과 C#에서는 기본 클래스 함수를 virtual
으로 선언해야합니다. 그렇지 않으면 동일한 이름과 서명을 가진 파생 클래스의 함수가 기본 클래스 버전을 숨 깁니다.
좋아, 이제 이걸 이해하기 시작했다. 따라서 [C#에서] 기본 클래스를 "가상"이라고 선언하면 파생 클래스는 동일한 이름과 특성을 갖지만 동일한 "기능"을 갖게됩니다. 즉, 파생 클래스 함수는 방법은 똑같은가? – Justin
기본 클래스 * function *을 클래스가 아닌 가상으로 표시해야합니다. 파생 클래스에서 함수를 재정의하지 않는 한 동일한 기능을 갖습니다. –
재정의하려는 방법은 virtual 또는 abstract
으로 표시해야합니다.
당신이 다형성과 상속을 이해한다면, 나는 당신이 질문을 지나치게 생각하고있는 것처럼 느낍니다. 제 말은 C# 오버라이드가 다음과 같이 간단하다는 것입니다.
public override double parentFunction()
{
//child implementation
}
... 그리고 부모 함수는 가상으로 delcared해야합니다.
질문을 축 어적으로 듣지 않고도 면접관이 무엇을 찾고 있었는지 말할 수 없습니다. 면접관과의 경험은 그들이 당신이 일반성을 이해하고 있는지 누가 알기를 바라는 것입니다. 나는 당신이 직업을 얻는 지 알아내는 것이 궁금 할 것이다.) 행운을 빌어 요!
안녕하세요, 귀하의 답변에 진심으로 감사 드리며 이전에 귀하에게 회신 해 드리고 싶습니다. 나는 극도의 스트레스를 받았고 가장 열심히 질문을하기 시작 했으므로 나는 편한 것이 아니었고 가장 쉬운 질문조차도 망쳤습니다. 그러나 일은 장거리 였고 이미 취업 했으므로 아무 것도 없습니다. 다시 한 번 감사드립니다! – Justin
- 1. .NET에서 개발을 시작하려면 무엇이 필요합니까?
- 2. NLP에는 무엇이 필요합니까?
- 3. nopCommerce를 설치하려면 무엇이 필요합니까?
- 4. subwcrev는 무엇이 필요합니까?
- 5. 이 계약을 증명하기 위해서는 무엇이 필요합니까? 필요합니까?
- 6. 다중 재정의를 사용하는 Perl 함수를 재정의하려면 어떻게해야합니까?
- 7. 큐 STL 개체의 일부 함수를 재정의하려면 어떻게합니까?
- 8. android developers - 디자이너에게 무엇이 필요합니까?
- 9. 이 정규식 패턴은 무엇이 필요합니까?
- 10. 모바일에서 JavaFX를 실행하려면 무엇이 필요합니까?
- 11. Java에서 SQLite를 사용하려면 무엇이 필요합니까?
- 12. 리버스 엔지니어링을 시작하려면 무엇이 필요합니까? ?
- 13. Android ROM 개발. 무엇이 필요합니까?
- 14. .NET에서 표준 EventHandler 패턴을 버리면 무엇이 손실됩니까?
- 15. find에는 -printf 옵션이 없습니다. 이제 무엇이 필요합니까?
- 16. PHP에서 SQL Server 2008에 연결하려면 무엇이 필요합니까?
- 17. Android Eclipse LogCat을 사용하려면 무엇이 필요합니까?
- 18. SharePoint 응용 프로그램을 개발하려면 무엇이 필요합니까?
- 19. Kannel에서 문자 메시지를 보내려면 무엇이 필요합니까?
- 20. C# 프로토 타입에서 ASP.NET으로 변경하려면 무엇이 필요합니까?
- 21. Grails 앱을 체크하기 위해서는 무엇이 필요합니까?
- 22. Perl에서 파일 다운로더를 빌드하려면 무엇이 필요합니까?
- 23. 사람들이 내 응용 프로그램을 실행하려면 무엇이 필요합니까?
- 24. 내 서버에서 node.js 스크립트를 실행하려면 무엇이 필요합니까?
- 25. Delphi에서 XSLT 2.0을 사용하려면 무엇이 필요합니까?
- 26. 안드로이드에서 데이터베이스 파일을 보려면 무엇이 필요합니까?
- 27. Visual Studio에서 리본 컨트롤을 추가하려면 무엇이 필요합니까?
- 28. XBOX 360 용 게임을 개발하려면 무엇이 필요합니까?
- 29. 웹 서버를 다시 빌드하려면 무엇이 필요합니까?
- 30. ejb 2.x 귀에는 무엇이 더 필요합니까?
감사합니다. 이것은 정확히 내가 인터뷰하는 사람이 찾고 있다고 생각하는 것입니다. 더 일찍 당신에게 돌아 가지 못해서 사과드립니다. – Justin