[JAVA]/[혼공자]

[혼공자] 상속 요약본

북방바다코끼리표범 2023. 10. 2. 10:21

복습

https://shins99.tistory.com/91

 

[혼공자] 클래스 요약본

복습 https://shins99.tistory.com/90 [혼공자] 참조타입 요약본 복습 https://shins99.tistory.com/89 [혼공자] 조건문과 반복문 요약본 복습 https://shins99.tistory.com/88 [혼공자] 연산자 요약본 복습 https://shins99.tistory

shins99.tistory.com


상속

- 현실에서 상속은 부모가 자식에게 재산(자산) 물려주는

- 코딩에서 상속은 부모클래스가 자식클래스에게 속성/함수를 물려주는

 

l  상속 : 부모 클래스의 속성과 함수를 자식 클래스에서 사용할 있도록

l  함수(메소드) 재정의 : 부모 함수를 자식 클래스에서 다시 정의하는

l  final 클래스 : final 키워드로 선언된 클래스는 부모 클래스로 사용할 없음

l  final 함수 : final 키워드로 선언된 함수는 재정의할(오버라이딩) 없음

 

타입 변환과 다형성

- 기본 자료형에 자동타입변환/강제 타입변환이 있듯이, 클래스에도 자동타입변환/강제타입변환이 있음, 이것을 이용해 다형성을 구현함

 

l    클래스 타입 변환 : 다른 클래스 타입으로 객체를 대입하는 (저장하는 )

l   자동 타입 변환 : 자식 객체를 부모 타입 객체에 대입할 때는 자동으로 타입이 변환됨

l   강제 타입 변환 : 자식 객체를 부모 타입으로 변환된 상테에서 다시 원래의 자식 타입으로 변환하고자 캐스팅() 연산자를 사용해서 강제 타입 변환됨

l    instanceof 연산자 : 객체가 어떤 타입인지 조사할 instanceof 연산자를 사용

  (주로 강제 타입 변환 전에 변환이 가능한 조사할 사용함)

l   다형성 : 객체 사용 방법(함수 호출방법) 동일하지만 실행결과가 다양하게 나오는 성질

l   다현성 구현 : 함수(메소드)재정의 + 타입변환
부모 타입으로 자동 타입 변환 후에 ( 자식클래스에 재정의된 함수가 있다면 ) 함수를 호출하면 재정의된 자식 함수가 호출됨

l   다형성 장점 : 유연한 코딩으로 유지보수성 코딩 생산성을 향상시킴
  ex)
커피머신 프로그램을 만든다고 가정한다.
  커피를 만드는 방법은 에스프레소, 아메리카노, 모카 많다.
 
각각의 에스프레소.make(), 아메리카나.make(), 모카.make() 각각 만들고 다른 수십개의 프로그램에서 호출하게 만드는   보다, 미래의 변화를 고려할 때,
 커피.make() 다른 수십개의 프로그램에 호출하게 만들고 실행클래스에서(1) 커피 = new 에스프레소(); 등으로 다형성 을 이용하는 것이 효율적인 코드임

 

 

추상 클래스

- 공통되는 특성을 추출해서 공통 클래스를 만드는데 주로 추상 클래스 등을 이용함

 

l  추상클래스 : 클래스들의 공통적인 속성과 함수를 추출해서 선언한 클래스

l  추상 함수 : 추상 클래스에서만 선언할 있고, 함수의 선언부만 있는 함수를 말함.

   추상 함수는 자식 클래스에서 재정의되어 실행 내용을 결정해야

l  실체클래스 (==자식클래스 ) : 추상 클래스의 모든 특성을 물려받고 추가적인 특성를 가질 있음

l  목적 : 공통된 속성과 함수의 이름을 통일할 목적
 (
객체마다 재각각인 함수/속성 이름 : 난잡 )

l  실체클래스를 작성할 시간 절약(추상 클래스의 속성/함수 물려받음)