> Java > java지도 시간 > 다형성 이해 없이 Java의 필드 및 정적 메소드에 액세스

다형성 이해 없이 Java의 필드 및 정적 메소드에 액세스

一个新手
풀어 주다: 2017-10-10 09:26:00
원래의
1592명이 탐색했습니다.

1. 메소드 호출을 메소드 본문과 연관시키는 것을

2. 컴파일 타임 바인딩(정적)이 프로그램 컴파일 단계에서 참조된 객체의 유형을 결정합니다.

3. 런타임 바인딩(동적 바인딩)을 참조합니다. 실행 중에 참조된 개체의 실제 유형을 판단하고 실제 유형에 따라 해당 메서드를 호출합니다

4. 정적 메서드와 최종 메서드(개인 메서드는 최종 메서드임)를 제외하고 다른 모든 메서드는 후기 바인딩입니다. Java의 메소드는 동적 바인딩을 통해 다형성입니다.

5. 특정 필드에 액세스하는 동작은 다형성이 아닙니다.


package polymorphism;

class SuperField {
	public int field = 1;

	public int getField() {
		return field;
	}
}

class SubField extends SuperField {
	public int field = 2;
	
	public int getField() {
		return field;
	}
	
	public int getSuperField() {
		return super.field;
	}
}

public class FieldPolymorphism {

	public static void main(String[] args) {
		SuperField sup = new SubField();
		System.out.println("sup.field = " + sup.field + ", sup.getField() = " + sup.getField());
		SubField sub = new SubField();
		System.out.println("sub.field = " + sub.field + ", sub.getField() = " + sub.getField() +
				", sub.getSuperField() = " + sub.getSuperField());
	}

}
로그인 후 복사

출력 결과:

sup.field = 1, sup.getField() = 2
sub.field = 2, sub.getField() = 2, sub.getSuperField() = 1
로그인 후 복사

SubField 객체가 Super로 변환될 때 참조되면 모든 필드 액세스 작업이 수행됩니다. SubField는 실제로 필드라는 두 개의 필드를 포함합니다. 즉, 자체 필드이고 SuperField에서 상속됩니다. 일반적으로 필드는 비공개로 설정되며 직접 액세스할 수 없고 상속할 수 없으며 호출을 통해 액세스합니다. 메소드

6. 정적 메소드에 액세스하는 것은 다형성이 아니며 단일 객체와 연관되지 않습니다.

package polymorphism;

class Super {
	
	public static String staticMethod() {
		return "Super staticMethod()";
	}
}

class Sub extends Super {
	public static String staticMethod() {
		return "Sub staticMethod()";
	}
}

public class StaticPolymorphism {

	public static void main(String[] args) {
		Super sup = new Sub();
		System.out.println(sup.staticMethod());
		System.out.println(Sub.staticMethod());
	}

}
로그인 후 복사

출력 결과:

Super staticMethod()
Sub staticMethod()
로그인 후 복사

위 내용은 다형성 이해 없이 Java의 필드 및 정적 메소드에 액세스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿