JAVA/JAVA2

[java2] #37 - extends, Override, super

yoonddo 2022. 11. 24. 18:38

상속

자바에서 상속은 부모클래스의 메서드와 변수가 같은 멤버와 자원을 자식 클래스에서 사용할 수 있음을 의미한다.

상속을 사용하면 중복된 코드를 줄이고 코드의 재사용성을 높여 유지보수가 편리하다.

 

  • 부모 클래스 : parent class, 기반 클래스, super class, 상위 클래스
  • 자식 클래스 : children class, 후손 클래스, sub class, 하위 클래스

상속을 받게 되면 부모 클래스의 필드, 메서드와 같은 멤버 등을 물려받게 된다. 하지만 접근제어자가

private인 멤버는 불가능하며 부모 클래스와 패키지가 다를 경우 접근제어자가 default인 멤버도 상속 불가능하다.

 

상속 형식

class 자식클래스명 extends 부모클래스명 {
}

자바에서는 하나의 자식클래스가 여러개의 부모클래스를 만드는 다중상속이 불가능하다. 하지만 부모 클래스는

여러개의 자식 클래스를 가지는 것이 가능하다.


오버라이딩(Override)

부모 클래스에서 정의된 메서드를 자식 클래스에서 메서드의 동작을 재정의하여 사용할 수 있는데,

이것을 오버라이딩이라 한다.

 

  • 오버라이딩을 하려면 부모클래스의 메서드 리턴타입과 동일하게 해야한다.
  • 메서드의 매개변수가 동일해야한다.
  • 접근 지정자는 동일하거나 더 큰 범위만 가능하다 (좁은 범위로 변경 불가능)
  • 부모 클래스의 메서드보다 더 큰 범위의 예외를 선언할 수 없다.
  • static, final, private 지정자를 가진 메서드는 오버라이딩이 불가능하다.

super

부모 클래스로부터 상속받은 멤버변수나 메서드를 자식 클래스에서 참조할 때 사용하는 래퍼런스(참조) 변수이다.

부모 클래스와 자식 클래스 멤버의 이름이 같을 경우 super를 사용하여 부모 클래스의 멤버에 접근할 수 있다.

인스턴스 메서드에만 사용이 가능하며 클래스 메서드에는 사용할 수 없다.

 

super()

super()는 부모 클래스의 생성자를 호출할 때 사용한다. 자식 클래스의 인스턴스를 생성하면 부모 클래스의

모든 멤버까지 포함되어 있다. 자식 클래스에서 부모 클래스의 멤버를 사용하기 위해서는 부모 클래스의 멤버를

먼저 초기화 해야한다. 부모 클래스의 멤버를 초기화하기 위해서는 부모 클래스의 생성자를 자식 클래스의 

생성자 첫 줄에서 호출해야한다.

'JAVA > JAVA2' 카테고리의 다른 글

[java2] #39 - TreeSet, TreeMap  (0) 2022.11.27
[java2] #38 - Templete Method  (0) 2022.11.24
[java2] #36 - PrintWriter (Text File Write Test)  (0) 2022.11.23
[java2] #35 - StringTokenizer, DecimalFomat Class  (0) 2022.11.23
[java2] #34 - Memo Project  (0) 2022.11.19