[java] 추상 클래스와 인터페이스

나경·2024년 6월 10일
0

추상 클래스

메서드를 정의만 하고 구현하지 않은 형태

  • abstract 키워드를 사용
  • 클래스 내에 일반 메서드와 추상 메서드 둘 다 포함 가능
  • 자식 클래스에서 구현
  • 클래스에 추상 메서드가 있다면 꼭 추상 클래스로 선언
  • 자신의 인스턴스를 가질 수 없음
abstract class Person {
	abstract void printInfo();
}
class Son extends Person {
	void printInfo() {
		System.out.println("아들입니다.");
	}
}
public class myClass {
	public static void main(String[] args) {
		Son a = new Son();
		a.printInfo();
	}
}
// 출력
아들입니다.

인터페이스

다른 클래스를 작성할 때 틀을 제공하는 일종의 추상 클래스

  • interface 키워드 사용
  • 추상 메서드만 포함 가능
  • 일반 메서드 포함할 수 없음
  • 인터페이스 내부의 모든 메서드는 추상 메서드
  • 자신의 인스턴스를 가질 수 없음

인터페이스의 상속

인스턴스를 만들 수 없어서 상속 사용

  • implements 키워드 사용
  • 인터페이스를 구현하는 클래스는 인터페이스 내에 선언된 모든 메서드를 구현해야 함
interface Parent {
	void printInfo();
}
class Father implements Parent {
	public void printInfo() {
		System.out.println("아버지입니다.");
	}
}
public class myClass {
	public static void main(String[] args) {
		Father myFather = new Father();
		myFather.printInfo();
	}
}
// 출력
아버지입니다.

0개의 댓글