-
상속(Extends)■ 아빠 프로그래밍/JAVA 2017. 8. 22. 12:20반응형
상속 (extends)
상속은 기존의 클래스로 부터 새로운 클래스를 유도하는 과정이다.
쉽게 말해서 부모 클래스를 extends로 상속받아 자식 클래스에서 내 것처럼 사용할 수 있는 것이다.
시스템을 설계하다보면, 공통된 부분으로 인하여 중복되는 것들이 계속적으로 나올 수 있다. 이럴때 상속을 이용하여, 비슷한 객체끼리 하나의 묶음으로 묶어주고, 공통된 부분을 뽑아서 상위 개념의 부모 클래스를 생성한다. 그리고 이 객체들이 부모 객체를 상속하면 중복이 제거되며, 공통된 방식으로 설계할 수 있다.
또한 오버로딩과 오버라이딩을 사용하여 자식 클래스에서 자유자재로 필요한 클래스를 구현할 수 있다.
상속을 사용하여 소프트웨어 재사용을 쉽게 할 수 있는 것이다.
- protected : 객체를 캡슐화하기 위해서 변수들의 modifier를 private로 설정하면, 이 객체를 상속받은 자식 클래스에서는 접근을 할 수가 없다. 외부에서의 변수에 접근은 막고 싶고, 자식 클래스에는 접근을 허용하고 싶을 때는 protected modifier를 사용하자. protected modifier는 외부에는 접근이 제한되고, 같은 패키지와 하위 클래스에만 접근을 허용한다.
- super 참조 : 예약어 super 는 그 부모 클래스를 참조하는데 사용한다. 생성자인 super() 를 호출하면, 부모 클래스의 생성자를 호출하게 된다. 상위 클래스의 생성자를 호출하는 super() 는 반드시 해당 클래스의 생성자 첫 번째 라인에 위치해야 한다. 이것은 상위 클래스의 생성자가 항상 하위 클래스의 생성자보다 먼저 수행되어야 하기 때문이다.
- 단일 상속 : 자바에서는 다중 상속을 지원하지 않는다. 따라서 extends 를 통해 하나의 부모만을 가질 수 있는 단일 상속만 사용할 수 있다.
- 오버라이딩(Overriding) : 상위 클래스의 메소드를 하위 클래스가 재정의해서 사용하는 기술이다. 하위 클래스에서 상위 클래스의 메소드 이름, 매겨변수 유형을 동일하게 정의하면 하위 클래스에서 해당 메소드를 재정의하게 된다.
- 상속의 제약 : 상수 final 을 선언하면, 다른 클래스에서 해당 클래스를 상속할 수 없다. final을 메소드에서 사용할 경우 하위 클래스에서 오버라이딩이 불가능하다. final 은 최종 클래스에서 사용 가능하며, 더이상 확장할 수 없다.
반응형'■ 아빠 프로그래밍 > JAVA' 카테고리의 다른 글
로컬컴퓨터 MAC 주소 가져오기 (0) 2017.08.22 포워딩(forwarding) (0) 2017.08.22 인터페이스(interface) (0) 2017.08.22 추상클래스 선언 및 호출 (0) 2017.08.22 생성자 메서드 오버로딩 (0) 2017.08.22