다형성 (Polymorphism) - 3

DONI·2021년 9월 11일
0

Java

목록 보기
37/46
post-thumbnail

🏹 추상 클래스 (abstract class)

1) 추상 메서드를 포함하고 있는 미완성 클래스
2) 미완성된 부분이 없어도 객체로 생성되어서는 안 되는 클래스
[접근제한자] abstract class 클래스명 { }

🏹 추상 메서드 (abstract method)

상속 시 반드시 구현해야 하는 메서드 (오버라이딩 강제화)
[접근제한자] abstract 반환형 메서드명(자료형 변수명);중괄호 X


🏹 추상 클래스의 특징

  1. 미완성된 클래스 → 객체 생성 불가 (반드시 상속하여 객체 생성)
  2. 추상 메서드가 포함된 클래스는 반드시 추상 클래스
    단, 추상 메서드가 없어도 추상 클래스 선언 가능
  3. 클래스 내에 일반 변수, 메서드 포함 가능
  4. 객체 생성은 불가하지만 부모 타입 참조형 변수로 사용 가능

🏹 인터페이스 (Interface)

상수형 필드추상 메서드만을 작성할 수 있는 추상 클래스의 변형체 (기초 설계도)
메서드의 통일성을 부여하기 위해 추상 메서드만 따로 모아놓은 것으로,
상속 시 인터페이스 내에 정의된 모든 추상 메서드를 구현해야 함
[접근제한자] interface 인터페이스명 { }

인터페이스는 Object 클래스를 상속 받지 못하기 때문에 클래스가 아님 !

  • 인터페이스의 사용 목적
    1) 일관된 인터페이스(작업환경)를 제공하기 위해
    2) 클래스 간의 접점을 만들어 강제적으로 부모, 자식 관계를 형성하기 위해

🏹 인터페이스의 특징

  1. 모든 인터페이스의 메서드는 묵시적으로 public abstract
  2. 변수는 묵시적으로 public static final
  3. 객체 생성은 불가하지만 부모 타입 참조형 변수로 사용 가능
  4. 클래스 간의 다중 상속은 불가능하지만
    인터페이스 간의 다중 상속, 인터페이스 - 클래스 간의 다중 상속은 가능
    extends : 클래스 간의 상속, 인터페이스 간의 상속 관계
    implements : 인터페이스 - 클래스 상속 관계

   🌼 마커 인터페이스 : 어떤 메서드도 담고 있지 않지만, 특정 표식을 위한 용도로 사용
       (표식이 되어있는 클래스를 한 번에 취급할 수 있다.)

profile
틀린 내용이 있다면 댓글 또는 이메일로 알려주세요 ❤ꔛ❜

0개의 댓글