자바 공부중인데 추상클래스와 인터페이스의 차이를 명확하게 머릿속에서 구체화하고 넘어가고싶습니다.


제가 공부한바로는 추상클래스는 같은 혈통에 해당하는 기능들을 명시해두고 각각의 자식 클래스에서 추상클래스를 상속받아서 오버라이딩 해서 사용하는걸로 알고있고


인터페이스는 추상 클래스보다 좀더 추상화된 개념으로 혈통이  달라도 행동자체의 유사한점  ex) 날다 (비행기도 날고 새도날지만 같은 혈통이아님)
을 명시하는 개념으로 알고있습니다. 


차이점으로는 인터페이스의 경우 클래스가 아니여서 다중상속이 가능한점.  default 메서드의 사용가능한점. 상수 선언. 등이 가능한것으로 알고있고.


공통점으로는 둘다 구현할 객체에서 추상메서드를 무조건 구현해야한다라는 규칙이 있다는점. 객체화를 할수없다는점.  등등 으로 이해를 하고있습니다.

위쪽에 적어둔 내용을 기반으로 생각해봤을때 인터페이스를 "비행하기" 이라고 정한다면 날다() , 착륙한다() 정도를  인터페이스에 명시해둘수있을거같습니다.


만약 객체는 새,날치, 비행기,전투기 4개라면

추상클래스는 Animal클래스,AirPlane클래스를 만들어서 객체에 상속시켜 사용하는것 이라고 이해하면 될까요..