상속 : 부모가 가진 것을 자식에게 물려주는 것
=> is a 관계 혹은 kind of 관계 라고 한다. Car 를 상속받은 Bus 를 class로 표현하는 방법
부모클래스에 메소드 추가하기
❗그러나 부모는 자식메소드를 사용하지 못한다!
: class가 인스턴스화 될때 생성자가 실행이되면서 객체의 초기화를 한다. 그때 자신의 생성자만 실행되는 것이 아니고, 부모의 생성자부터 실행된다!
❗ 부모 생성자가 기본 생성자일때는 super();가 자동 생성 되지만 기본생성자가 아닐경우 실행이 안되므로 자식 생성자 위에 적어주어야 함!!
부모의 기본생성자가 아닌 다른 생성자를 호출하는 방법
super 키워드는 자식에서 부모의 메소드나 필드를 사용할 때도 사용합니다.<클래스 형변환> is a 관계이므로 자식=부모다! 라고 가능 부모 타입으로 자식객체를 참조하게되면 부노가 가지고 있는 메소드만 사용할 수 있다. 자식 객체가 가지고 있는 메소드나 속성을 사용하고 싶다면 형변환 해야 한다. 0
부모타입으로 자식객체를 참조하게 되면 부모가 가지고 있는 메소드만 사용할 수 있다. 자식객체가 가지고 있는 메소드나 속성을 사용하고 싶다면 형변환을 해야한다.
상속관계란 is a 관계이다. "Bus는 Car다" 라는 관계가 성립된 것이다. 현실에서도 버스를 가리키면서 차다. 라고 말한다. 부모타입으로 자식객체를 참조할 수 있다. 부모타입으로 자식객체를 참조하게 되면 부모가 가지고 있는 메소드만 사용할 수 있다.
ppangppang()메소드를 호출하고 싶다면 Bus타입의 참조변수를 참조해야한다.
1. 객체들끼리도 형변환이 가능하다. 단, 상속관계에 있었을 때만 가능하다. 2. 부모타입으로 자식타입의 객체를 참조할 때는 묵시적으로 형변환이 일어난다. 3. 부모타입 객체를 자식타입으로 참조하게 할때 명시적 형변환을 해줘야한다. 단, 이렇게 형변환을 시도할땐 부모가 참초하는 인스턴스가 형변환하려는 자식타입일 때만 가능하다. |