abstract = 추상
Java에서 abstract는 상속을 강제하는 일종의 규제이다.
abstract 클래스나 메서드를 사용하기 위해서는 반드시 상속해서 사용하도록 강제한다.
추상 클래스 사용방법
- 추상 클래스를 사용하기 위해서는 추상 클래스를 상속하는 다른 클래스를 정의하여 추상 메서드를 오버라이딩하여 사용한다.
- 추상 메소드에는 본체가 없다.(ex. public abstract int b();)
- 추상 클래스 내에는 추상 메서드가 아닌 메서드가 존재할 수 있다.
- 추상 메소드를 만들면 자동으로 그 클래스는 추상 클래스가 된다.
추상 클래스 사용하기
A 클래스는 b라는 추상 메서드를 가지고 있기 때문에 자동으로 추상 클래스가 된다.
추상 메소드인 b메서드에는 본체가 없다.(본체가 있으면 에러 발생)
추상 클래스는 추상 메서드(b)가 아닌 다른 메서드(d)를 가질 수 있다.
클래스 B는 추상 클래스 A를 상속하고 추상 메서드 b를 오버라이딩한다.
메인 메서드에서 B 클래스를 선언하여 사용할 수 있다. A클래스를 사용하면 에러가 발생한다. 꼭 A클래스를 상속하는 클래스를 사용해야 한다.(상속 강제)
추상 클래스를 사용하는 이유
상속을 강제하기 위한 것이다.
즉, 부모 클래스에는 메서드의 시그니처만 정의해 놓고 그 메서드의 실제 동작 방법은 이 메서드를 상속받은 하위 클래스의 책임으로 위임하고 있다.
공통적인 로직은 추상 클래스에 작성하고
하위 클래스에는 용도에 따라 달라지는 로직을 작성한다.
참고 : https://opentutorials.org/course/1223/6062
위 내용은 생활코딩 강의 내용을 정리한 것이다.
'Java' 카테고리의 다른 글
Java Interface 자바 인터페이스 (0) | 2019.06.10 |
---|---|
Java 접근제어자 (public, protected, default, private) (0) | 2019.06.10 |
객체 지향 프로그래밍(Object Oriented Programming, OOP) (0) | 2019.05.28 |
Java 자바 JVM, JRE, JDK (0) | 2019.05.24 |
Java Method Signature 자바 메서드 시그니처 (0) | 2019.05.23 |