: 동적 바인딩 동안 정적 및 동적
1
결합 사이
Link
몇 가지 중요한 차이점) 정적 자바 바인딩이 런타임시 발생 컴파일 시간 동안 일어난다.
2) 비공개, 최종 및 정적 메소드 및 변수는 정적 바인딩을 사용하고 컴파일러가 본딩하는 반면 가상 메소드는 런타임 객체를 기반으로 런타임 중에 결합됩니다.
3) 정적 바인딩은 Type (Java의 Class) 정보를 사용하여 바인딩을 동적 바인딩은 Object를 사용하여 바인딩을 해결합니다.
3) 오버로드 된 메서드는 정적 바인딩을 사용하여 결합되지만 재정의 된 메서드는 런타임에 동적 바인딩을 사용하여 본딩됩니다. 자바
public class StaticBindingTest
{
public static void main(String args[])
{
Collection c = new HashSet();
StaticBindingTest et = new StaticBindingTest();
et.sort(c);
}
//overloaded method takes Collection argument
public Collection sort(Collection c)
{
System.out.println("Inside Collection sort method");
return c;
}
//another overloaded method which takes HashSet argument which is sub class
public Collection sort(HashSet hs)
{
System.out.println("Inside HashSet sort method");
return hs;
}
}
출력에
정적 바인딩 예 : 동적의 내부 컬렉션 정렬 방법
예 출력 자바에
public class DynamicBindingTest
{
public static void main(String args[])
{
Vehicle vehicle = new Car(); //here Type is vehicle but object will be Car
vehicle.start(); //Car's start called because start() is overridden method
}
}
class Vehicle
{
public void start()
{
System.out.println("Inside start method of Vehicle");
}
}
class Car extends Vehicle
{
@Override
public void start()
{
System.out.println("Inside start method of Car");
}
}
바인딩 : 내부는 자동차의 방법을 시작
당신은'instanceof'를 사용하여 다형성 문장에 대해 알고 싶을 것입니다. –