찾다
JavaJava베이스Java에서 다형성을 구현하는 방법

Java에서 다형성을 구현하는 방법

Dec 04, 2019 am 11:48 AM
java다형성

Java에서 다형성을 구현하는 방법

Java 다형성 개요: (권장: java 비디오 튜토리얼)

다형성은 객체 지향 프로그래밍 언어의 중요한 기능입니다. 이를 통해 기본 클래스의 포인터나 참조가 파생 클래스의 객체를 가리킬 수 있습니다. 클래스에 구체적으로 액세스하는 동안 메서드의 동적 바인딩을 구현합니다. Java의 메소드 호출 동적 바인딩 구현은 주로 메소드 테이블에 의존하지만 클래스 참조 호출(invokevitual)과 인터페이스 참조 호출(invokeinterface)을 통한 구현은 다릅니다.

Java에서 다형성을 구현하려면 세 가지 조건이 필요합니다.

1. 상속 관계가 있어야 합니다.

2. 체계적으로 다시 작성해야 합니다.

3. 하위 클래스 객체를 가리키는 상위 클래스의 참조가 있어야 합니다.

클래스 참조 호출의 일반적인 프로세스는 다음과 같습니다. Java 컴파일러는 Java 소스 코드를 클래스 파일로 컴파일합니다. 컴파일 프로세스 중에 호출된 기호 참조는 정적 유형에 따라 클래스 파일에 기록됩니다.

실행 중에 JVM은 클래스 파일에 따라 호출 메서드의 기호 참조를 찾은 다음 정적 유형의 메서드 테이블에서 오프셋을 찾은 다음 이 포인터를 기반으로 객체의 실제 유형을 결정합니다. 실제 타입의 메소드 테이블과 오프셋 정적 타입의 메소드 테이블의 오프셋과 마찬가지로 실제 타입의 메소드 테이블에서 해당 메소드가 발견되면 직접 호출되는 것으로 간주된다. 상위 클래스는 재정의되지 않았습니다. 상속관계에 따라 아래에서 위로 검색합니다.

Java에서 다형성을 구현하는 방법

위 그림에서 볼 수 있듯이 프로그램 실행 시 특정 클래스가 필요할 때 클래스 로딩 서브시스템은 해당 클래스 파일을 JVM에 로드하고 내부적으로 클래스의 유형 정보를 설정합니다( 유형 정보는 실제로 JVM의 클래스 파일에 저장된 데이터 구조입니다. 여기에는 메소드 코드, 클래스 변수, 멤버 변수 및 이 블로그 게시물에서 중점적으로 다룰 메소드 테이블을 포함하여 Java 클래스에 의해 정의된 모든 정보가 포함되어 있습니다. 이 유형 정보는 메소드 영역에 저장됩니다.

이 메소드 영역의 유형 정보는 힙에 저장된 클래스 객체와 다릅니다. 메소드 영역에서는 이 클래스의 타입 정보가 고유한 인스턴스만 가지며(즉, 각 스레드가 공유하는 메모리 영역임) 힙에는 이 클래스의 개체가 여러 개 있을 수 있습니다. 메소드 영역의 유형 정보는 힙의 클래스 객체를 통해 액세스할 수 있습니다. Java 리플렉션 메커니즘과 마찬가지로 클래스 객체를 통해 클래스의 모든 정보에 액세스할 수 있습니다.

더 많은 Java 지식을 알고 싶다면 java 기본 튜토리얼 칼럼을 주목해주세요.

위 내용은 Java에서 다형성을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)