[ 캐스팅 (Casting) ]

형변환을 의미한다.

//강제 형변환 
int num2 = (int) 2.0;

[ 업캐스팅(UpCasting) ]

자식클래스의 객체가 부모클래스의 타입으로 형변환 되는 것

class Parent {
	String name;
    Parent(String name){
    	this.name = name;
    }
}

class Student extends Parent{
	String child;
    Student(String name){
    	super(name);
    }
}

public class Main{
	public static void main(String[] args){
		Student student = new Student("길동이"); 
 
        Parent person = student; //업캐스팅
        
        System.out.println(person.name);
        //(출력) 길동이
        System.out.println(student.name);
        //(출력) 길동이
	}
}
//업캐스팅
Parent p = new Child();

[ 다운캐스팅(DownCasting) ]

업캐스팅된 객체를 다시 되돌리는 것.

class Parent {
    String name;
    Parent(String name){
        this.name = name;
    }
}

class Student extends Parent{
    String child;
    Student(String name){
        super(name);
    }
}

public class main {
    public static void main(String[] args){
        Parent person = new Student("길동이");

        Student student = (Student)person; //다운캐스팅
        student.name = "동그라미";
        student.child = "그라미";

        System.out.println(person.name);
        //(출력) 동그라미
		System.out.println(student.child);
        //(출력) 그라미

    }
}
//다운캐스팅
Child c = (Child) p;

[ 동적바인딩(Dynamic binding) ]

  • 런타임에 바인딩된다.
  • overriding
overriding이란 상속관계에 있는 클래스간 같은 이름을 재정의하는 것 때문에 실행 시간에 어떤 메서드를 호출할지 정해지기 때문에 오바라이딩은 동적바인딩
a = 10;
pa = &a;

[ 정적바인딩(Static binding) ]

변수를 선언하고 초기화해주는 자체

  • 변수 및 함수가 컴파일 타임에 바인딩된다.
  • overloading
overloading이란 같은 이름의 메서드를 다르게(타입 및 개수) 정의한 것 때문에 컴파일 과정에서 어떤 메서드를 호출할 지 결정하기 위해 오버로딩은 정적바인딩이다.
int a = 5;
profile
정리.velog

0개의 댓글