JAVA

Java final, 추상(abstract)메서드, interface

서묘_ 2021. 12. 6. 19:25

final 뜻 그대로 마지막의, 변경 될 수 없는 예약어다.

 

final 변수 : 값이 변경 될 수 없는 상수. 단 한번만 값을 대입할 수 있다.

final 메서드 : overriding(오버라이딩) 불가.

final 클래스 : 상속 불가(Super class가 될 수 없다.)

 

* final 문자열에 + 연산 시 새로운 문자열이 만들어진다.

 

abstract 는 미완성의, 추상의 라는 뜻으로, 의미만 있는 기능이 완성되기 전의 상태를 뜻한다.

abstract 메서드 : 바디( {}블럭 )가 없는 추상 메서드

abstract 클래스 : 추상 메서드가 선언되어 있는 클래스

    -> 객체 생성 불가, 일반 클래스에서 상속받아 오버라이딩(기능을 완성)해서 사용한다.

 

클래스가 일반 클래스를 상속 받을 때는 오버라이딩을 하지 않아도 되지만.

추상 클래스를 상속 받을 때는 무조건 오버라이딩을 해야 한다.

 

interface - 상수와 추상메서드만 가지고 있는 클래스

- class와 동급으로 보면된다. (굳이 따지자면 class > abstract class > interface)

- 변수를 써도 상수가 되며, 메서드를 써도 추상 메서드가 된다.

- 객체 생성이 불가능하다. 일반 클래스에서 구현해서 사용한다.

  -> 구현할 클래스명 옆에 implements 인터페이스명 으로 명시하며 상속 + 오버라이딩 개념이다.

- 다중 구현이 가능하다. (다형성)

- super가 없다.

- interface간의 다중 상속도 가능하다.

- 상속과 구현을 동시에 할 수 있다.