티스토리 뷰

Java/기본

032. Java Class 상속

따강아지 2022. 5. 24. 23:44

클래스 상속은 객체 지향 프로그램에서 가장 기본적인 문법 요소로 부모 클래스를 성질을 자식 클래스가 포함시키는 문법 요소로 객체(사물)의 공통 적인 성질(특성)을 모아서  클래스를 만들고 독립적인 성질을  각각 클래스로 만들면 이때 공통적인 성질을 부모 클래스라 하고 개별 클래스를 자식 클래스라 한다.

상속은 코드 중복 제거와 다형성을 위함이다.

  •  중복되는 속성(상태)과 행동을 별도로 관리하여 중복 코드를 제거한다.
    - 이름, 나이, 몸무게, 키, 먹기, 잠자기
  • 학생은 사람이다, 직장인은 사람이다. 직장인은 성인이다. 일반인도 성인이다.처럼 다양한 표현을 할 수 있는 것을 다양성이라 한다.



1. Extends ( Class 상속 )

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

  ….
}


다중 상속 -> 자바에서는 허용하지 않음

class 브루스버너박사 extends 사람, 헐크 { … }

브루스버너박사가 달린다 -> 누가 달리는 것인가 ? => 모호성이 발생함





1-1. 클래스 생성 시 메모리 구조

1-2. 부모 객체에 생성자는 상속 대상이 아니다

1-3. 다양성 

객체를 다양하게 생성 할 수 있다.
   -> 중학생, 초등학생

public class Human { }
public class Adult extends Human { }
public class Worker extends Adult { }

public class SlefEmpolyed extends Adult { }
public class Student extends Human { }
public class CollegeStudent extends Student { }

public class HighSchoolStudent extends Student { }

1-4. 객체 생성 시 타입 

1-5. 객체 타입 확인 ( instanceof )

1-6. Method Overriding

1-7. super & this

  • super : 부모의 멤버, 메서드를 접근할 때 사용, private로 선언 것은 접근 할 수 없음
  • this  : 자기 자신의 멤버, 메서드 접근

  • super() :  자식 생성자에서 부모의 생성자에 접근하기 위해서 사용


2. abstract class

  • 추상 메서드가 1개 이상 포함하고 있는 클래스는 반드시 추상 클래스로 정의해야 한다.
  • 추상 메서드 : 메서드의 본체가 없는 미완성 메서드로 상속받은 클래스에서 실체화(구현) 해야 한다.


3. interface class

  • Interface는 입출력에서 사용하는 용어로 서로 다른 시스템 간의 연동을 의미한다.
  • Interface는 시스템 또는 각 객체의 종류에 상관없이 동일한 필드와 메서드를 제공하여 호환성을 제공하기 위해서 사용된다.
  • 자바에서 Interface는 객체 관계에서 다른 객체에게 공개할 기능만 추상화하기 위한 용도로 사용이 된다.
  • Class 대신 Interface 키워드를 사용한다.
  • implements를 사용
  •  
    implements는 다중 상속 가능 -> implements 인터페이스명, 인터페이스명
  • •extends와  같이 사용하는 경우 extends 클래스명 implements 인터페이스명 순서로 선언해야 한다.
  • interface 사용 : 인터페이스 참조 변수 = new 구현클래스();

'Java > 기본' 카테고리의 다른 글

034. Java Inner Class  (0) 2022.05.31
033. Java Generic  (0) 2022.05.25
031. Java 외부 구성 요소  (0) 2022.05.16
030. Class 구성 요소  (0) 2022.05.16
029. 클래스 ( Class )  (0) 2022.05.11