Home » JAVA -6. 객체지향 개념 2

JAVA -6. 객체지향 개념 2

6.1. 상속(Inheritance)

6.1.1. 상속(Inheritance)이란?

  • 기존 클래스를 재사용하여 새로운 클래스를 작성
  • 자식 클래스는 부모 클래스의 모든 멤버를 상속받음(생성자, 초기화 블럭 제외)

6.1.2. 상속

6.2. 오버라이딩(Overriding)

6.2.1. 오버라이딩(Overriding)이란?

  • 부모 클래스로부터 상속 받은 메소드를 덮어 씌우는 것

6.2.2. 오버라이딩의 조건

  • 선언부가 동일해야 함
  • 접근제어자를 좁은 범위로 변경할 수 없음(동일 범위 혹은 넓은 범위 가능)
  • 부모 클래스의 메소드보다 많은 수의 예외를 선언 할 수 없음

6.2.3. 오버라이딩

6.2.4. 참조변수 super

  • 부모 클래스를 가르키는 참조변수
  • ‘super()’는 부모 클래스의 생성자를 호출

6.3. 접근 제어

6.3.1. 제어자란?

  • 클래스 메소드 변수 등에 선언함으로써 그 대상에 대한 접근이나 속성을 지정하는 형태
  • 접근제어자 : public, protected, default, private
  • 그 외 제어자 : static, final, abstract, native, transient, syncronized, volatile, strictfp

6.3.2. static, final

  • static 멤버 변수
    모든 인스턴스에서 공통으로 사용
    인스턴스를 생성하지 않고 사용 가능
    클래스가 메모리에 로드 될 때 생성
  • static 메소드
    static 멤버변수 직접 사용 가능
    인스턴스를 생성하지 않고 사용 가능
  • final 클래스
    확장이 불가능한 클래스, 상속 불가
  • final 메소드
    오버라이딩을 통한 재 정의 불가
  • final 멤버 변수, 지역변수
    값을 변경 할 수 없는 변수(상수)

6.3.3. 접근제어자

6.4. 다형성(Polymorphism)

6.4.1. 다형성(Polymorphism)이란?

  • 여러가지의 형태를 가질 수 있는 것
  • 하나의 참조 변수로 여러가지의 형태를 객체를 가질 수 있음

6.4.2. 다형성

6.5. 추상 클래스(Abstract Class)

6.5.1. 추상 클래스(Abstract Class)란?

  • 추상 메소드를 포함하는 클래스

6.5.2. 추상 메소드(Abstract Method)란?

  • 선언부만 있고, 실제 로직은 구현되어 있지 않은 메소드
  • 추상 클래스를 상속 받을 경우 상속받은 클래스에서 해당 메소드를 구현

6.5.3. 추상 클래스 구현

6.6. 인터페이스(Interface)

6.6.1. 인터페이스(Interface)란?

  • 추상 메소드와 상수만을 포함하고 있는 클래스

6.6.2. 인터페이스의 상속

  • 클래스와는 달리 다중 상속이 가능

6.6.3. 인터페이스 구현