다형성(polymorphism)은 상속 관계에 있는 클래스간의 호환성을 높여주는 기능입니다.
우리가 인스턴스를 생성할 때, 같은 클래스의 자료형을 가진 변수를 선언하여
인스턴스를 생성해 왔습니다.
그런데 부모 클래스의 자료형을 가진 변수를 선언하여 자식 클래스의 인스턴스를 생성할 수 있습니다.
그렇게 생성한 변수에서 자식 클래스의 변수나 메소드를 호출할 수 있습니다.
접근 제어자(access modifier)는 우리가 public과 private에 대해서 이미 알아본 바가 있습니다.
접근 제어자에는 이 외에도 default, protected라는 두 개의 접근 제어자가 더 있습니다.
default의 경우 같은 패키지 내의 클래스에서는 접근할 수 있는 권한이 있고,
protected의 경우 해당 클래스와 자식 클래스를 통해서 접근할 수 있습니다.
final 키워드는 상속과 관련하여 제한을 걸어주는 키워드 입니다.
만약 현재 클래스에서 더 이상 자식 클래스를 생성하지 못하게 막기 위해서는
클래스에 final 키워드를 삽입합니다.
그리고, 메소드가 자식 클래스에서 더 이상 오버라이드 되기를 원하지 않는다면
메소드에 final 키워드를 삽입합니다.
abstract 키워드는 해당 클래스, 메소드가 재정의가 필요하다는 것을 강제하는 키워드 입니다.
abstract 메소드는 선언만 되어 있는 상태이고, abstract 클래스는 인스턴스로 만들 수 없습니다.
만약 클래스 안에 abstract 메소드가 있다면 그 클래스는 abstract 클래스여야 합니다.
'JAVA > JAVA Note' 카테고리의 다른 글
length() (0) | 2023.08.16 |
---|---|
if, else if, else, 줄 (0) | 2023.08.16 |
interface, 다형성 (0) | 2023.08.16 |
예외처리 (0) | 2023.08.16 |
try catch finally / try with resource statements (0) | 2023.08.16 |