"인터페이스가 가지고 있는 객체 지향의 특징"

ggyu_55·2023년 3월 28일
0

메모

목록 보기
5/46

1. 추상화

public interface myInteface{
	public int getSum(int a,int b);
}

인터페이스에는 메서드의 상세 구현이 허락되지 않는다. 속성과 기능의 특징만을 추출하여 나열해두고 내용물은 인터페이스를 구현하는 클래스가 채워넣도록 하기 때문에 추상화를 잘 보여주고 있다고 생각한다.

2. 상속성

public interface myInterface{
	public int getSum(int a,int b);
}
public class mySum implements myInterface{
	@Override
	public int getSum(int a,int b){
    	return a+b;
    }
}

반대로 인터페이스를 구현하는 클래스는 무조건 해당 인터페이스의 속성과 기능들을 빠짐없이 오버라이드하여 실제로 작동하도록 내용물을 채워넣어야 한다. 따라서 상속성을 잘 보여준다.
인터페이스의 유산은 상속포기가 불가능한 악성 채무인 것이다!!

또한 인터페이스를 인터페이스가 상속받는 경우도 가능하다. 이 경우 상속받은 인터페이스의 구성요소들 또한 인터페이스의 구현 클래스가 구현하여야 한다.

3. 다형성

public interface myInterface{
	public int getSum(int a,int b);
    public int getSume(int a,int b, String c);
}

인터페이스에 추상화 해놓은 메서드들에도 다형성이 적용된다. 한 가지 이름으로 여러가지 일을 할 수 있다.

4. 캡슐화

public interface Calculate{
	public int getSum(int a,int b);
    public int getDiff(int a,int b);
    public int getMutil(int a,int b);
    public double getDiv(int a,int b);
}

인터페이스의 내용물을 구현클래스가 채워 넣으려면 public 지정을 해야하기 때문에 접근지정을 통한 보호는 할 수 없다.

0개의 댓글