23.04.26 JAVA

천용·2023년 4월 26일
0

JAVA

목록 보기
16/23

1. 인터페이스

  • 인터페이스는 객체로 생성 될 수 없으므로 생성자를 가질 수 없다
  • 변수선언 불가 그러나 상수는 선언가능함 -> public static final
  • 상수이름은 대문자로 하되 언더바를 사용하여 잇는다.

1-1 구현클래스(implements)

  • 인터페이스에서 정의된 추상메소드를 재정의해서 실행내용을 가지고 있는 클래스

  • 메소드에 public abstract 생략가능

    public class 구현클래스명 implements 인터페이스명 {
        //인터페이스에 선언된 추상 메소드의 실체 메소드 선언
    }

1-2 다중 인터페이스

다중 인터페이스도 가능하다.

1-3 인터페이스 사용

  • 인터페이스는 필드, 매개변수, 로컬변수로 선언가능

    public class MyClass {
        RemoteControl re = new Television(); //필드
        //생성자
        MyClass(RemoteControl rc) { // 생성자의 매개값으로 구현 객체 대입
            this.rc = rc;		// MyClass mc = new MyClass(new Television());
        }
    
        void methodA() { /*메소드
    로컬변수*/RemoteControl rc = new Audio();
        }
    
        void methodB(RemoteControl rc) {} // 생성자의 매개값으로 구현 객체 대입
                                        // MyClass mc = new MyClass(new Audio());
    }

추상 클래스와 인터페이스의 차이점

추상 클래스(Abstract class)

일반 클래스와 달리 추상 메서드(Abstract method)를 포함하고 있어서, 객체를 생성할 수 없습니다. 자식 클래스에서 추상 메서드를 오버라이딩하여 구현해야 하며, 추상 클래스를 상속받는 자식 클래스에서는 반드시 추상 메서드를 구현해야 합니다. 또한, 일반적인 멤버 변수와 메서드도 포함할 수 있습니다.

인터페이스(Interface)

추상 클래스와 비슷한 개념으로, 추상 메서드만을 포함하고 있어서 객체를 생성할 수 없습니다. 인터페이스를 구현하는 클래스에서는 반드시 인터페이스에 선언된 모든 메서드를 구현해야 합니다. 인터페이스는 다중 상속이 가능하며, 상속받은 인터페이스의 메서드들도 구현해야 합니다. 인터페이스는 일반적인 멤버 변수나 메서드를 가질 수 없으며, 상수(constant)와 디폴트 메서드(default method)를 가질 수 있습니다.

각각의 주로 사용되는 곳
추상 클래스: 추상 클래스는 공통적인 멤버 변수와 메서드를 포함하는 기본 구현을 제공하고, 자식 클래스에서 필요한 구체적인 구현을 추가하는 경우에 사용됩니다. 또한, 다른 클래스에서 상속받아 사용될 것을 고려할 때, 추상 클래스를 사용하여 상속받는 클래스에서 공통적으로 필요한 기능을 미리 구현하여 코드의 중복을 줄일 수 있습니다.

인터페이스: 인터페이스는 특정한 기능을 제공하는 메서드들의 집합으로, 다른 클래스에서 이를 구현하여 사용하는 경우에 사용됩니다. 인터페이스를 사용하면 다형성(Polymorphism)을 구현할 수 있으며, 객체 지향 프로그래밍에서 느슨한 결합(Loose coupling)을 구현하는 데에도 유용합니다.

추상 클래스와 인터페이스는 각각의 특성에 따라 적절한 상황에서 사용됩니다. 일반적으로, 공통적인 멤버 변수와 메서드를 제공하면서도 자식 클래스에서 구체적인 구현이 필요한 경우에는 추상 클래스를, 다른 클래스에서 공통적으로 필요한 기능을 제공하는 경우에는 인터페이스를 사용합니다.

profile
성장하는 개발자가 되자

0개의 댓글