자바 공부 기록(8)-다형성, 인터페이스, 예외처리
my code archive
article thumbnail
반응형
다형성(polymorphism)

=여러가지 타입(데이터 타입)의 특성

=>특정한 변수가 여러가지 데이터 타입을 저장하고 사용

 

부모 클래스 타입의 참조 변수로 자식 클래스의 인스턴스 참조가 가능하다.

 

-상대적으로 더 작은 데이터 타입의 데이터가 상대적으로 더 큰 데이터 타입의 변수에

들어가는 것은 문제가X (암시적 형변환)

-부모 클래스는 항상 자식 클래스보다 큰 데이터 타입이다.

 

ex)

Child myChild = new Child();

Parent myParent = my Child(); => Parents > Child

 

Parent my Parent = new Parent();

= new Child();

 

Object obj = new Parent();

= new Child();

= new Grandchild();

 

★거꾸로는 안된다★

참조 변수에서의 형변환

-서로 상속 관계에 있는 클래스 사이에만 타입 변환이 가능하다.

-자식 클래스 타입에서 부모 클래스 타입으로의 타입 변환은 생략이 가능하지만,

-부모 클래스 타입에서 자식 클래스 타입으로의 타입 변환은 반드시 명시해야 한다.

추상 클래스 VS 인터페이스

추상 클래스 (abstract class)

-추상 클래스는 미완성 설계도

-클래스 내 '추상 메소드'가 하나 이상 포함되거나 abstract로 정의된 경우

->추상 클래스는 상속(Inherit)의 개념

 

인터페이스(interface)

-인터페이스는 모든 메소드가 추상 메소드인 경우

-인터페이스는 다형성(Polymorphism)의 개념

=>결론

추상 클래스는 부모가 가진 기능을 물려받으면서 오버라이드할 수 있는 상속을 위한 틀

인터페이스는 다형성을 제공하는 반드시 구현해야 하는 메소드들을 포함한 틀

 

예외 처리(exception handling)

Error VS Exception

-Error

에러는 프로그래머가 할 수 있는 일이 (일단은) 없다.

발생하면 애플리케이션이 비정상 종료된다.

-Exception

프로그래머가 만든 프로그램이 잘못된 방향으로 흘러갈 때

ex)나누기에 사용되는 변수에 0이 들어갔음

 

-예외처리

'프로그래밍에서 예외처리를 한다'라는 의미는

->에러가 발생한 상황 자체를 뒤집지는 못한다.

->과거로 다시 돌린다는 의미가 아니라! 끝까지 수행하고자 하는 코드를 다 실행하는 데에 목표.

-문제가 발생해도 프로그램이 종료되지 않고 일단 목적한 바까지 끝까지 다 수행하도록 코딩.

 

ex)원래 목표가 물컵을 들고 A지점까지 가는 것이라고 쳤을 때,

가다가 물컵을 쏟으면 프로그램이 멈춘다.(에러 발생)

->여기서 물컵은 쏟았지만 신경쓰지 말고 일단 A지점까지 계속 가! 도록 하는 것이 예외처리.

 

try-catch

exception 감지 및 처리를 위한 구문.

 

-실행 타임 에러를 미연에 방지

-에러 이벤트 발생시 발생 위치 확인, 적절한

 

try 블럭 내에서 예외가 발생한다면?

-발생한 예외와 일치하는 catch 블럭 검색

-일치하는 catch 블럭이 있다면 그 catch 블럭 내 문장 수행 후 전체 try-catch문 빠져나감

-일치하는 catch 블럭이 없을 경우 예외는 처리되지 못함

try 블럭 내에서 예외가 발생하지 않으면?

-catch 블럭을 거치지 않고 전체 try-catch문을 빠져나감

 

반응형
profile

my code archive

@얼레벌레 개발자👩‍💻

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

반응형