프로그래밍/java

[자바JAVA] 상속(super,오버라이딩@Override)

pupu91 2022. 7. 12. 09:07
반응형

상속

객체지향 프로그래밍의 3대특징

1 . 캡슐화

2 . 상속

3 . 다형성

 


 

  • 상위클래스가 하위클래스를 상속 받아 멤버 변수와 메소드를 사용할 수 있음
  • 멤버 외에 타입 또한 상속 가능.
  • 자바는 단일 상속만 지원(하나의 클래스만을 상위클래스로 가짐)
  • 클래스 간의 상속 시에는 클래스 선언부에  extends(확장) 예약어 사용
  • ex) class B extends A{ }  B 클래스가 A클래스를 상속받는다.          
  • IS-A  : 자식클래스는 하나의 부모 클래스이다. 하위클래스끼리는 접근 불가
  • IS-A  관례로 구분되는 경우에만 사용하는게 좋음
  • 상속의 장점 : 클래스의 재사용, 다형성 문법 가능
  • 상속의 단점 : 상위 클래스 기능 변경시 하위 클래스 동작 유무 예측이 힘듦

 

 


상속 키워드

 


1 . super

  • 상위클래스의 인스턴스 주소를 보관하는 레퍼런스 변수
  • 하위클래스 내의 모든 생성자와 메소드 내에서 사용 가능

 

2. super()

  • 상위 클래스가 가지는 private생성자를 제외한 나머지 생성자를 호출하는 구문
  • 호출할 상위 생성자의 매개변수의 타입, 개수, 순서가 일치해야함.

 

3. 오버라이딩(@Override)

  • 상위클래스에서 상속받은 메소드를 하위클래스에서 재정의하여 사용하는 것
오버라이딩 성립조건
1. 메소드 이름 동일
2. 메소드 리턴 타입 동일
3. 매개변수의 타입, 개수, 순서 동일
4.private 메소드는 불가능
5.final 키워드가 사용된 메소드 불가능
6. 접근제한자는 상위 메소드와 같거나 더 넓은 범위여야 함.
7.예외처리는 같은 예외이거나 더 구체적(하위)인 예외를 처리해야 함.

 

 

 

 

 

반응형