Oracle java tutorial 확인시 다음과 같이 설명하고 있다.Consider using abstract classes if any of these statements apply to your situation:You want to share code among several closely related classes.You expect that classes that extend your abstract class have many common methods or fields, or require access modifiers other than public (such as protected and private).You want to declare non-static or non-final ..