package king;
public class test {
public static void main(String[] args) {
wang w = new wang();
w.p();
}
}
class king {
public void p() {
super(); 기본으로 명시되어있음
System.out.println("부모클래스!");
}
}
class wang extends king {
@Override
public void p() {
// TODO 자동 생성된 메소드 스텁
System.out.println("자식클래스에서 재정의");
}
}
오버라이딩이란
부모클래스에 있는 메소드를 새로 재정의해서 재사용성을 높이는 것이다.
king클래스에는 부모클래스라는 출력을 한다.
하지만, 상속받은 자식클래스에서 자식클래스에서 재정의라는 문구를 새로 정의해서
부모클래스출력대신 자식클래스 정의된 내용이 출력된다.
상속시 부모의 생성자 함수가 먼저 수행되고 자식의 생성자가 수행된다.
자바는 클래스끼리 절대로 다중상속을 제공하지 않는다.
오직 클래스는 단일 상속만 가능하다.(명확성을 높이기 위해서)
오버라이딩: 부모의 멤버를 똑같이 재정의
자식의 멤버의 우선순위가 된다.
수퍼
super: 부모의 멤버를 명시적으로 접근하고 싶을때 사용
super(): 부모의 생성자를 호출, 항상 상속시 자식의 생성자의 첫번째 라인에 존재한다. (디폴트)
디스
this : 클래스내에서 내 자신의 객체를 레퍼런스하는 변수
객체를 구별하는 역할
명시적으로 선언을 할수 없고 사용만 가능하다.
this() : 자신의 또다른 생성자를 호출할때 사용
'취업아카데미-JAVA' 카테고리의 다른 글
16. 클래스의 상속 목적 & final (0) | 2015.06.28 |
---|---|
14. 클래스상속 (0) | 2015.06.28 |
13. 배열 (0) | 2015.06.28 |
12. 콘솔 입력과 출력 (0) | 2015.06.28 |
11. 메소드 오버로딩과 String 클래스 (0) | 2015.06.28 |