[새싹X코딩온] JAVA | 추상 클래스와 인터페이스

Sohee Kwon·2024년 1월 25일
post-thumbnail

추상 클래스와 추상 메소드

추상(abstract)

  • 실제 간의 공통되는 특성

  • ex. 삼각형, 원, 정사각형...

    • 이들의 공통점은 도형으로, 도형은 실체들의 공통되는 특성을 갖는 추상적인 것!

추상 클래스

  • 하나 이상의 추상 메소드⚠️를 포함하는 클래스

  • 객체의 공통적인 특징을 추상화해서 추상 클래스에서 정의하고,
    이를 상속받는 자식클래스에서 해당하는 추상 메소드를 구현 해야 함!

  • 추상 클래스는 new 연산자를 통해 인스턴스 객체를 만들 수 없다

⚠️추상 메소드 : 선언만 있고, 구현되지 않은 메소드

추상 클래스의 구현

  • abstract 키워드 사용
// 추상 클래스
public abstract class Person {
	private int age;
    private String name;
    ...
    
    abstract public void printName(); // 추상 메소드
}


// 이를 상속받는 자식 클래스
public Student extends Person {
	...
    
    public void printName() {
    	// 추상 메소드를 구현
    	System.out.println("학생" + getName());
    }
}

인터페이스

인터페이스 사전적 의미

  • 사전적 의미로는 두 장치를 연결하는 접속기
  • 인터페이스는 두 객체를 연결하는 역할을 한다!

Java에서 인터페이스 (interface)

  • 추상 메소드의 모음
  • 여러 구현체에서 공통적인 부분을 추상화 하는 역할

⚠️추상클래스와 다른 점?

  • 추상 클래스는 추상 메소드가 없어도 ⭕
  • 인터페이스에는 추상 메소드가 없으면 ❌,
    무조건 있어야 함! (추상 메소드만 존재)
  • 상속과 달리 하나의 클래스가 두 개 이상의 인터페이스를 동시에 구현 가능하다.

인터페이스 문법

  • 인터페이스에서 정의하는 모드 필드는 public static final이 자동 적용

  • 인터페이스 선언 시 class 키워드 대신 interface 키워드 사용

  • 인터페이스 구현 시 extends 키워드 대신 implements 키워드 사용

profile
개발자 성장로그

0개의 댓글