본문 바로가기
Programming/JAVA(eclipse)

java 9일차 _ 8일차 리뷰

by yoon9i 2024. 3. 20.

1. OOP 3대 특징
- 상속 ( inheritance )
- 다형성 ( polymorphism )
- 은닉화 ( 캡슐화; encapsulation )

2. 상속
1) 개념: 클래스들간의 관계가 is a 관계가 성립 ( 같은종류 )
2) 구현:
큰타입 클래스 ( Employee ) ( Pet )
        |
        |
작은타입 클래스 ( Engineer, Manager ) ( Dog, Cat )

- 큰타입클래스 <= 부모클래스, super 클래스, parent 클래스
- 작은타입클래스 <= 자식클래스, sub 클래스, child 클래스
- 코드표현

public class Employee { }
// -> public class Employee extends Object { } 동일
public class Engineer extends Employee { }

3) 특징
- 재사용성이 증가됨.
( 부모의 변수, 메서드를 상속받은 자식들은 그냥 사용가능 )
- 상속불가
( 부모의 생성자, private 로 된 변수/메서드 )
- 항상 자신보다 부모를 먼저 생성한다.
( 자식 생성자 첫라인에서 부모생성자를 호출하는 
super( ) 자동삽입됨 )
- 모든 클래스의 부모는 Object 가 된다.
( 다형성에서 가장 큰 타입으로 Object 가 사용됨 )
- 명시적으로 부모의 변수/메서드 및 생성자를 호출 할 수 있다.
  부모의 변수/메서드: super.변수, super.메서드( )
   => 자식클래스에 부모와 동일한 변수와 메서드가 존재할 때.
  부모의 생성자: super( ), 
   => 자식 클래스의 생성자 첫 라인에서만 사용 가능.
   super( name,salary )
   => 명시적으로 부모 생성자 호출하는 이유는 부모에서 선언된
        변수이기 때문에 부모에서 초기화할 목적이다.

- 부모에서 상속받은 메서드를 필요에 의해서 다시 정의할 수 있다.
( Overriding, 재정의 )

Overriding 규칙:
- 반드시 부모 메서드의 리턴타입과 동일
- 반드시 부모 메서드명과 동일 ( 재사용성 )
- 반드시 부모 메서드 파라미터와 동일
- 접근지정자는 같거나 덜 제한하는 지정자 사용
- throws 예외클래스는 같거나 자식 예외클래스 사용

Overriding 불가:
- private 로 지정된 메서드.
- static 로 지정된 메서드. 
( static 은 인스턴스 변수를 받을수 없기때문 )
- final 로 지정된 메서드.

3. 다형성
1) 개념: 상속이 전제.
           단 하나의 참조변수( 부모타입 ) 가 타입이 다른 여러 
           인스턴스( 자식타입 ) 들을 참조할 수 있는 능력

2) 문법:
큰타입 변수 = 작은타입;
ex) Employee emp = new Engineer( );
            emp = new Manager( );

3) 목적: 재사용성
4) 다형성 활용
가. 배열
Employee [ ] emp = { new Engineer( ), new Manager( ) };

Object [ ] obj = { "hello", 2, true, ... };

나. 메서드 파라미터 ( Java API 가 상당수 다형성을 적용 )
=> 오버로딩 메서드가 불필요함.

public void a( Object obj ) { }

a( 10 );
a( "hello" );

'Programming > JAVA(eclipse)' 카테고리의 다른 글

java 9일차 _02. Object 의 toString( )  (0) 2024.03.20
java 9일차 _01. 다형성  (0) 2024.03.20
java 8일차 _03. 다형성  (0) 2024.03.19
java 8일차_ 02. 상속(2)  (0) 2024.03.19
java 8일차 _02. 상속  (0) 2024.03.19