super() = 부모클래스의 생성자를 호출한다 !
super.부모클래스의 메소드() = 부모클래스의 메소드를 호출한다
Overriding = 자식클래스에서 부모 클래스에 있는 메소드와 동일하게 선언하는 것
-> 자식클래스에 정의되어있는 메소드를 호출
Overloading = 같은 메소드라도 매개변수가 다르면 사용할 수 있는 것
( 상속 관계가 아니어도 된다 )
부모클래스 obj = new 자식클래스();
-> 자식클래스 타입 > 부모클래스타입 형변환 가능
자식클래스 obj = new 부모클래스();
-> 부모클래스 타입 > 자식클래스타입 형변환 불가능
이유 : 부모클래스에서 호출할 수 있는 메소드들은 자식클래스에서 호출 가능 (반대는 불가능)
ParentCasting parent = new ParentCasting();
ChildCasting child = new ChildCasting();
ChildCasting child2 = (ChildCasting)parent;
ParentChasting parent2 = child;
ChildCasting child2 = (ChildCasting)parent2;
객체 instance of 타입
-> true / false 로 결과값이 나온다
if (객체 instance of 타입1)
{
System.out.println("타입1");
} else if (객체 instance of 타입2)
{
System.out.println("타입2");
}