2012-10-09 5 views
1

연구에서 배운 것 :컴파일 시간 다형성 런타임 다형성이 이와 유사합니까?

오버로드, 연산자 오버로딩 및 재정의는 다형성이라고합니다.

다형성 배

예를 들어

에서 다르게 행동 같은 실체를 말한다 :

파라 메트릭을

add(12, 13); 
add(12.2, 13.3); 

같은 엔티티 (추가()) (시간에 두 배에 작품을 다른 행동 , 작품 int).

// 템플릿은 무엇 예에 따라도

애드혹

Animal dogInstance = new Dog(); 
Animal catInstance = new Cat(); 
dogInstance.sound(); //bark 
catInstance.sound(); //meow 

같은 엔티티 (사운드())
소리를 (시간에 다른 행동이) 작동합니다 여기서 일 (개 또는 고양이)).

과부하, 템플릿 및 제네릭은 컴파일 타임에 발생합니다 (컴파일 타임 다형성).
재정의하면 런타임에 연산자 오버로드가 발생합니다 (런타임 다형성).

파라 메트릭 다형성은 동일한 코드를 여러 데이터 유형에 적용 할 수있는 경우입니다.
예. 오버로드, 템플릿 및 제네릭

Ad-hoc 다형성은 다른 데이터 유형에 다른 코드가 사용되는 경우입니다.
예.

추가 질문을 연산자 오버로딩, 오버 라이딩 :

왜 운영자가 임시 (동적 바인딩을) 과부하입니까? 또한

:

당신은 런타임 다형성 같은이 일을 마음 시간 다형성, 동적 링크, 정적 링크, 프레임 워크의 의미, 프레임 워크와 라이브러리 사이
차이를 컴파일해야 프로그래머라면, 무엇 heavyweigth입니다 프레임 워크 란 가벼운 프레임 워크 수단을 의미하며, 내 프로그램이 작동하는 한 계속 프로그래밍을해야합니까?

+2

'Sentence-Case'를 사용하여 게시물을 편집하십시오 .. 우리가 관리 할 것입니다 .. –

+0

그럼, 당신이하는 일에 대해 깊이 이해해야하는지, 아니면 "상관 없어" 귀하의 프로그램이 작동합니까,이 권리를 얻을 수 있습니까? – Uooo

+0

우리들 대부분은 ** 당신이 ** 모든 대문자와 굵은 글씨를 사용하지 않고도 아주 잘 읽을 수 있습니다 !! ** – Praetorian

답변

1

자바에서는 초보자 자바 프로그래머를 혼란스럽게하는 ==의 경우에도 연산자 오버로드가 발생하지 않습니다.

기본 다형성 원칙을 이해해야하지만 커버를 열기 전에 프로그래밍의 모든 고급 기능을 알고 있는지 확인해야합니다.

무거운 무게 또는 경량 프레임 워크의 표준 정의가 있다고 생각하지 않습니다. 나는 모든 것을 하나의 라이브러리에 포함 시키거나 가능한 한 간단하게 만드는 디자인 전략을 주로 상상합니다.

+0

죄송합니다. 자바에 과부하가 없습니다. Ad hoc 다형성과 파라 메트릭 다형성은 무엇입니까 – user1729997

+0

그들은 Java에서 우연히 만난 용어가 아닙니다. –

+0

Java에서 JIT는 런타임 동작을 기반으로 다형성을 최적화 할 수 있습니다. 이는 명백하게 동적 인 상황에서 정적으로 적용될 수 있음을 의미합니다. 두 개의 서로 다른 클래스 만 사용되는 경우에도 인터페이스 사용은 인라인 될 수 있습니다. –

2

두 질문에 조금씩 다르게 답변 해 드리겠습니다.

컴파일 시간/실행 시간 : 컴파일시에만 컴파일러에서 구문이 올바른지 확인할 수 있습니다. 그것은 행동 평가를 수행 할 수있는 실행 시간입니다. 예 :

BC의 두 클래스가있는 경우 A입니다. 한 가지 방법은 을 반환하겠다고 선언 한 입니다. 발신자의 경우 B 인스턴스를 반환 할 것으로 예상됩니다. 캐스트 결과를 B으로 입력하면 (B)A이됩니다. 컴파일러 은 여기에 어떤 문제도 제기하지 않습니다. 그러나 런타임에 메서드가 인 경우 반환되는 인스턴스가 c이면 실패합니다.

여기 제가 설명하려고하는 것은 : 런타임에만 평가할 수있는 행동이 있습니다.

프로그래밍 : 작은 자습서 프로그램을 작성할 때 모든 것이 프로그램과 기본 학습의 성공입니다. 크고 무거운 사용 응용 프로그램을 작성할 때는 매우 조심해야합니다. 예 : 문자열 연결, 변수 선택, 반복 횟수, 객체 참조가 중요합니다.

이 정보가 도움이되기를 바랍니다.

관련 문제