인터페이스

국비 지원/JAVA

[JAVA] 다중 상속과 추상 클래스와 인터페이스의 차이점

다중 상속 추상 클래스와 인터페이스를 공부했다면 추상 클래스와 인터페이스의 차이점에 대해 의문이 생길 것이다. 추상 클래스와 인터페이스의 공통점은 메소드의 선언만 할 수 있고 구현부가 없다는 점, 상속받은 클래스에서 추상 메소드를 구현해야 한다는 점이라고 할 수 있다. 그러면 추상 클래스 하나만 있어도 인터페이스의 역할을 다 할 수 있는 것이 아닐까?라는 생각이 들텐데 자바의 다중 상속 부분에서 차이가 난다. 일단 자바는 다중 상속이 불가능하다. 여기서 다중 상속이란 아래와 같이 자식 클래스의 부모가 여러 개인 것을 말한다. // 잘못된 코드 public class Vehicle extends Bus, Car { } 그러면 왜 다중 상속이 불가능할까라는 생각이 들 것이다. 만약에 Bus 클래스에도 dri..

국비 지원/JAVA

[JAVA] 인터페이스 (+ 다운 캐스팅)

인터페이스 인터페이스란 실제 메소드를 정의하고 구현하는 것이 아니라 메소드의 헤더 부분(시그니처)만 선언하며, 이 메소드를 실제 정의하는 클래스에서 메소드 본체를 완성하는 것을 말한다. 개발 코드와 객체가 서로 통신하는 접점 역할을 하는데 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출시킨다. 여기서 개발 코드가 직접 객체의 메소드를 호출하면 되는데 왜 중간에 인터페이스를 두는 것인지 의문이 생길 수도 있다. 그 이유는 개발 코드를 수정하지 않고 사용하는 객체를 변경할 수 있도록 하기 위해 인터페이스를 사용하는 것이라고 할 수 있다. 즉, 코드 변경 없이 실행 내용과 리턴 값을 다양화할 수 있다는 장점을 가지게 된다는 것이다. 인터페이스는 상수 필드와 추상 메소드만을 구성 멤..

강의 정리하기/JAVA

다형성과 오버로딩, 인터페이스

다형성이란 하나의 메소드나 클래스가 있을 때 이것들이 다양한 방법으로 동작하는 것을 말한다. 오버로딩은 다형성의 좋은 예라고 할 수 있다. class A{ public String x(){return "A 클래스의 x 메소드";} } class B extends A{ public String y(){return "B 클래스의 y 메소드";} } public class PolymorphismDemo1 { public static void main(String[] args) { A obj = new B();// 클래스 B를 인스턴스화 했지만 데이터 타입은 클래스 A System.out.println(obj.x()) // System.out.println(obj.y()); // 오브젝트 안에 클래스 B를 담았..

강의 정리하기/JAVA

인터페이스

인터페이스란? 서로 관계가 없는 물체들이 상호 작용을 하기 위해서 사용하는 장치나 시스템을 말한다. 인터페이스는 어떤 객체가 있고 그 객체가 특정한 인터페이스를 사용한다면 그 객체는 반드시 인터페이스의 메소드들을 구현해야 한다. (그 인터페이스를 구현한 클래스를 어떻게 조작할 것인가를 규정) 인터페이스와 상속은 다르다. 상속이 상위 클래스의 기능을 하위 클래스가 물려 받는 것이라고 한다면, 인터페이스는 하위 클래스에 특정한 메소드가 반드시 존재하도록 강제한다. 인터페이스는 데이터를 저장할 수 없기 때문에 저장할 인스턴스 및 정적 필드를 선언할 수 없고 대신 상수 필드만 사용 가능하다. 따라서 static final을 생략해도 자동적으로 컴파일 과정에서 붙게 된다. 그리고 메소드는 최종적으로 객체에서 실행..

아민_
'인터페이스' 태그의 글 목록