비디오: 자바 객체지향 강의 30강 - 추상클래스와 인터페이스의 차이 2024
Java의 추상 클래스 는 하나 이상의 추상 메소드 , 는 본문이없는 메소드 선언 일뿐입니다. 즉 클래스 또는 메소드를 구현하는 실행 가능 코드가 없습니다. 추상 메소드는 메소드의 리턴 유형 및 매개 변수 목록을 선언하지만 메소드의 실제 구현을 제공하지 않는 메소드의 프로토 타입과 같습니다.
추상 클래스를 인스턴스화 할 수 없습니다. 다만, abstract 클래스를 확장 해, abstract 클래스에 의해 정의 된 abstract 메소드의 구현을 제공하는 서브 클래스를 작성할 수 있습니다. 하위 클래스를 인스턴스화 할 수 있습니다.
추상 메소드를 작성하려면 수정 자 요약을 지정하고 메소드 본문을 세미콜론으로 바꿉니다.
public abstract return-type method-name (parameter-list);
다음은 그 예입니다:
public abstract int hit (int batSpeed);
추상 클래스를 생성하려면 클래스 선언에 추상을 사용하고 하나 이상의 추상 메소드를 포함합니다. 예:
public abstract class Ball {public abstract int hit (int batSpeed);}
추상 클래스에서 서브 클래스를 만들 수 있습니다:
추상 클래스를 서브 클래스로 만들 때, 서브 클래스는 추상 클래스의 각 추상 메서드에 대한 구현입니다. 즉, 각 추상 메서드를 재정의해야합니다.추상 클래스는 둘 이상의 하위 클래스에 대해 수퍼 클래스로 사용되는 제네릭 유형을 만들려고하지만 수퍼 클래스 자체가 실제 객체를 나타내지 않는 경우에 유용합니다. 예를 들어 모든 직원이 봉급 또는 시간제를 사용하는 경우 추상 Employee 클래스를 만든 다음 SalariedEmployee 및 HourlyEmployee 하위 클래스의 기본 클래스로 사용하는 것이 좋습니다.
추상 클래스의 모든 메소드가 추상적이어야하는 것은 아닙니다. 클래스는 일부 메소드에는 구현을 제공 할 수 있지만 다른 메소드에는 구현을 제공 할 수 없습니다. 사실, 클래스에 추상 메소드가 없더라도 추상으로 선언 할 수 있습니다. (이 경우 클래스는 인스턴스화 될 수 없습니다.)
개인 메소드는 추상 클래스가 될 수 없습니다. 모든 추상 메소드는 공개되어야합니다.
-
수업은 추상과 최종 모두 될 수 없습니다.