github.com/taemin-kwon93 Github 보러가기 ->

Study/Today i learned

Difference between Abstract Class and Interface in Java

태민Kwon 2022. 3. 26. 16:43

Geeks for Geeks 에서 보기!

 

  • Type of methods: Interface can have only abstract methods. An abstract class can have abstract and non-abstract methods. From Java 8, it can have default and static methods also.
  • Final Variables: Variables declared in a Java interface are by default final. An abstract class may contain non-final variables.
  • Type of variables: Abstract class can have final, non-final, static and non-static variables. The interface has only static and final variables.
  • Implementation: Abstract class can provide the implementation of the interface. Interface can’t provide the implementation of an abstract class.
  • Inheritance vs Abstraction: A Java interface can be implemented using the keyword “implements” and an abstract class can be extended using the keyword “extends”.
  • Multiple implementations: An interface can extend another Java interface only, an abstract class can extend another Java class and implement multiple Java interfaces.
  • Accessibility of Data Members: Members of a Java interface are public by default. A Java abstract class can have class members like private, protected, etc.

  • 인터페이스는 추상 메소드만 가능하고 추상클래스는 추상메소드와 추상메소드가 아닌 메소드 둘 다 가능합니다.
  • 인터페이스 변수는 기본이 Final, 추상클래스는 Final 아닌것도 가능합니다.
  • 변수에 대해 static, final 설정이 다름. 인터페이스는 static과 final 변수만 갖을 수 있습니다.
  • 추상 클래스는 인터페이스를 구현할 수 있습니다.
  • 추상 클래스는 다른 Java 클래스를 확장하고 여러 Java인터페이스를 구현할 수 있습니다.
  • 추상 클래스는 private, protected와 같은 클래스 멤버를 가질 수 있습니다.

 

Implementation

Taemin's Github에서 코드 보기✨