JAVA

상속

JUN0126 2021. 7. 7. 00:53

상속이란?

 - 부모 클래스가 자신의 필드나 메서드를 자식 클래스에게 물려주어 자식 클래스가 부모 필드 및 메서드를 사용하는 것

 

사용법

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

   필드

   메서드

   생성자(){

    super() // 부모 생성자 호출

    }

   @override

    부모 메서드 재정의

  }

 

 - final 클래스는 상속 할 수 없다

 

 • 매개변수의 다형성

  메서드(부모클래스명 클래스변수) {

   }

  - 위와같은 메서드 선언 시 부모클래스의 자식클래스를 사용할 수 있다.

 

 • 자동 타입 변환

   -  부모클래스 변수 = new 자식클래스()

   - 자식 타입이 부모 타입으로 자동 변환하면, 부모 타입에 선언된 필드와 메소드만 사용 가능하다.

 

• 강제 타입 변환

  - 부모클래스 변수 = new 자식클래스 한 후, =>  자식클래스 변수 = (자식클래스) 부모클래스타입; 

  - 자식타입이 부모 타입으로 자동 변환한 후, 다시 자식 타입으로 변환할때만 사용 가능 

  - 부모 타입의 변수가 부모 객체를 참조 할 경우 자식 타입으로 변환할 수 없다.

  - 이때 instanceof 연산자를 사용하여 참조 객체가 부모객체인지 자식 객체인지 확인할 수 있다.

 

타입 변환

 

추상 클래스 

 - 실제 클래스가 공통적으로 가져야 할 필드와 메소드를 정의해 놓은 추상적인 클래스

 

추상 메서드

 - 추상 클래스에서만 선언할 수 있는 메서드

 - 하위 클래스가 반드시 실행 내용을 채우도록 강제한다.

 - 중괄호를 사용하지 않으며 세미콜론(;)으로 끝낸다.

 

public abstract class 클래스명 {       // 추상 클래스

  public abstract void 메소드명();     // 추상 메서드

}

 

주의할 점

부모클래스를 상속받은 자식클래스는 항상 부모 클래스 객체 부터 생성한 후 자식 클래스 객체가 생성된다.

객체 생성 순서

 

인터페이스 (Interface)

 - 객체의 사용 방법을 정의한 타입

 - 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출

 - 추상 메소드와 유사 (차이점 : 여러개의 인터페이스 구현 가능, 인터페이스 간 상속 가능)

 

• 선언법

 interface 인터페이스명{

    타입명 = 값; // 값은 상수이며 초기화 필요

    타입 메소드명( 매개변수 ) 

    default 타입 메소드명(매개변수) { }

    static 타입 메소드명 (매개변수) {}

 } 

 

인터페이스를 구현한 객체에 따라 실행결과를 다르게 할 수 있다 (다형성)

 

• 익명 객체 구현

 - 자주 사용되지 않는 객체라면 객체 선언 시 메소드를 정의해주어 사용할 수 있다.

익명 객체 구현

'JAVA' 카테고리의 다른 글

컬렉션 프레임워크  (0) 2021.07.10
프로세스와 쓰레드  (0) 2021.07.09
equals()와 hashCode() 함수 차이  (0) 2021.07.03
예외(Exception) 처리  (2) 2021.06.30
Java 컴파일 과정 및 메모리 구조  (0) 2021.03.21