인터페이스를 정리하기 전에 먼저 abstract와 interface 차이점을 정리하겠다 많이 헷갈린다.
두 가지는 서로 밀접하면서 약간의 다른 기능을 가지고 있습니다. abstract클래스는 일반적인 클래스와 다를 바가 없습니다. abstract메서드를 하위클래스가 상속받아서 사용하도록 강제한다는 차이외에는 같습니다. 하위클래스에서 상속 오버라이딩하도록 기대하는 비어있는 abstract메소드가있지만 동시에 실제 구체적인 로직을 가지고있는 필드나 메소드가 존재할 수 있는 클래스가 abstract클래스입니다.
interface는 구체적인 로직을 가지고있는 메소드를 interface안에 구현하면 안 됩니다.
interface는 반드시 본체가 없는 메서드들만을 가지고 있어야 합니다.
1. interface
어떤 객체가 있고 그 객체가 특정한 인터페이스를 사용한다면 그 객체는 반드시 인터페이스의 메서드들을 구현해야 하는 것을 강제하는 것입니다.
interface a{
public void z();
}
class A implement a{
public void z(){
System.out.print(); //반드시 구현
}
}
인터페이스는 상속 또한 가능하며 다중 상속이 가능합니다.
Interface a{
public void z();
}
Interface b{
public void y();
}
class A implement a,b{
public void z(){
System.out.print(); //반드시 구현
}
public void y(){
System.out.print(); //반드시 구현
}
}
인터페이스도 상속이 가능하게됩니다.
Interface a{
public void z();
}
Interface b extands a{
public void y();
}
class A implement b{
public void z(){
System.out.print(); //반드시 구현
}
public void y(){
System.out.print(); //반드시 구현
}
}
2. Interface를 왜 사용할까?
interface는 상호 간에 약속입니다.
즉 내가 구현할 내용의 기능들을 정의해놓을 테니까 상속받을 클래스에서는 그 기능들을 자신의 필요성에 따라 고치도록 약속시켜놓는 것이죠. interface는 협업에서 중요한 역할을 할 수 있습니다. 틀을 제공할 때 인터페이스라는 약속을 통해 구현할 내용을 정해놓는다면 인터페이스를 상속받아서 사용하는 쪽에서 미리 준비를 할 수 있을 것입니다.
상호 간의 약속을 자바에서는 interface로써 정해 놓은 것입니다.
* interface의 멤버는 반드시 public입니다 인터페이스는 그 인터페이스를 구현할 클래스를 어덯게 조작할 것인가를 규정합니다. 그렇기 때문에 외부에서 제어할 수 있는 가장 개방적인 접근 제어자인 public만을 허용합니다. 생략한다면 default가 아니라 public으로 됩니다.
'웹 프로그래밍 기초 > 자바기반의 웹&앱 응용SW 개발자' 카테고리의 다른 글
자바기반의 웹&앱 응용 SW개발자 양성과정 20일차 -36 (0) | 2020.03.24 |
---|---|
자바기반의 웹&앱 응용 SW개발자 양성과정 19일차 -35 (0) | 2020.03.24 |
자바기반의 웹&앱 응용 SW개발자 양성과정 18일차 -33 (0) | 2020.03.19 |
자바기반의 웹&앱 응용 SW개발자 양성과정 17일차 -32 (0) | 2020.03.18 |
자바기반의 웹&앱 응용 SW개발자 양성과정 17일차 -31 (0) | 2020.03.18 |
댓글